Reputation: 9583
I have a problem with creating a modelfield which Count number of people who like an article. I have class Like:
class Reaction(models.Model):
user = models.ForeignKey(User)
article = models.IntegerField(null=True, blank=True)
date = models.DateTimeField(auto_now_add=True, null=True)
and class Article:
from api.reactions.models import Reaction
class Article(models.Model):
user = models.ForeignKey(User)
post = models.TextField()
likes = models.IntegerField(default=0)
def __str__(self):
return self.post
def calculate_likes(self):
likes = Reaction.objects.count(article=self.pk)
self.likes = likes
self.save()
return self.likes
But likes wont be counted. What's wrong with this? Please help me. Thanks!
Upvotes: 0
Views: 690
Reputation: 185
def get_likes(self):
return self.likes.all().count()
this should basically be it, you don't need to point a model to an instance of itself, creating a reaction class is overkill. But if you are still going for it instead of:
likes = Reaction.objects.count(article=self.pk)
Try:
likes = Reaction.objects.filter(article=self.pk).count()
Upvotes: 1