Django 如何计算多少是不喜欢,多少是喜欢?

Django 如何计算多少是不喜欢,多少是喜欢?,django,django-orm,Django,Django Orm,rate可以设置为-1(不喜欢)或1(喜欢)。如何计算多少是不喜欢,多少是喜欢?(对于单个对象) views.py: class ObjectRate(models.Model): user = models.ForeignKey(User) my_object = models.ForeignKey(Design) rate = models.DecimalField(max_digits=2,decimal_places=1) 使用什么“算法”?您可以通过my_ob

rate
可以设置为
-1
(不喜欢)或
1
(喜欢)。如何计算多少是不喜欢,多少是喜欢?(对于单个对象)

views.py:

class ObjectRate(models.Model):
    user = models.ForeignKey(User)
    my_object = models.ForeignKey(Design)
    rate = models.DecimalField(max_digits=2,decimal_places=1)

使用什么“算法”?

您可以通过
my_object
rate
值(或-1或1)过滤
ObjectRate
,并分别获得计数:

def my_views(request,id):
    my_object = Object.objects.get(id=id)
    votes = ObjectRate.objects.filter(..)

您可以通过
my_object
rate
值(或-1或1)过滤
ObjectRate
,并分别获取计数:

def my_views(request,id):
    my_object = Object.objects.get(id=id)
    votes = ObjectRate.objects.filter(..)
@Aamir的答案是好的。 但我建议您使用“相关名称”

那么在你看来,

class ObjectRate(models.Model):
    user = models.ForeignKey(User, related_name="rates")
    my_object = models.ForeignKey(Design)
    rate = models.DecimalField(max_digits=2,decimal_places=1)
提示:

没有必要在django过滤器中使用“object\uu id”,只需使用对象即可。 例如:

@Aamir的答案是好的。 但我建议您使用“相关名称”

那么在你看来,

class ObjectRate(models.Model):
    user = models.ForeignKey(User, related_name="rates")
    my_object = models.ForeignKey(Design)
    rate = models.DecimalField(max_digits=2,decimal_places=1)
提示:

没有必要在django过滤器中使用“object\uu id”,只需使用对象即可。 例如:

dislikes = ObjectRate.objects.filter(my_object=my_object, rate=-1).count()
likes = ObjectRate.objects.filter(my_object=my_object, rate=1).count()