Я пытаюсь запросить модель блога так, чтобы она возвращала количество лайков для сообщения блога с title = example
и name = something
class Post(models.Model):
title = models.CharField(max_length=20)
name = models.CharField(max_length=100)
content = models.CharField(max_length=100)
likes = models.ManyToManyField(User, blank=True, related_name='likes')
, сейчас я пытаюсь получить количество лайков в моей модели с этим методом:
def average_voting(self):
likes = Post.objects.filter(title=self.title,name=self.name).likes.count()
return likes
и для добавления пользователя я использую:
Post.objects.filter(title="example",name="something").likes.add(User
)
но мои строки не работают Я не могу понять, что я делаю неправильно.
РЕДАКТИРОВАТЬ В основном для l oop, который будет делать это будет:
counter = 0
for c in Post.objects.filter(title=self.title,name=self.name):
counter+=c.likes.count()
Мое намерение состоит в том, чтобы, когда пользователю понравился пост с одинаковым заголовком, независимо от того, кто добавил пост, количество лайков по всем постам с одинаковым заголовком изменится.
Мне также было интересно, как я могу проверить, существует ли пользователь в сообщении, могу ли я использовать:
Post.objects.get(title=self.title,name=self.name).likes.filter(users=user.id).exists():
Если в моей модели пользователя у меня есть отношение ко многим ко многим, например:
posts = models.ManyToManyField('home.Post',related_name='profiles')
, поэтому я пытаюсь понять, понравился ли пользователю пост с таким заголовком.