Django:注释两个字段的差异

时间:2013-08-06 13:01:50

标签: django django-models

我有以下型号:

class P (models.Model):
    title = models.CharField(max_length=100)
    votes_up = models.ManyToManyField(User)
    votes_down = models.ManyToManyField(User)

有没有办法做类似

的事情
P.objects.annotate(rating = Count(votes_up) - Count(votes_down)).order_by('-rating')

2 个答案:

答案 0 :(得分:0)

不。 你要么编写自己的聚合函数,然后在注释中使用它(这实际上是一个坏主意),或者只是依赖原始的sql。

就个人而言,我会使用非规范化计数器处理该用例。

答案 1 :(得分:0)

为什么使用m2m关系来表示投票?也许改为整数字段。然后你可以有一个返回减去量的模型方法。然后也许你可以在模型方法上注释。