重复: 在 order_by() 中使用 Django 自定义模型方法属性
我有两个模型;一个存储帖子,另一个存储对这些帖子的投票,使用 ForeignKey 字段相关。每个投票都存储为单独的记录,因为我需要跟踪投票的用户和日期时间。
我创建了一个辅助函数,它使用 Django 1.1 聚合 Sum 函数计算所有投票。
class Post(models.Model):
...some fields...
def tally(self):
return self.vote_set.all().aggregate(Sum('value'))['value__sum'] or 0
class Vote(models.Model):
post = models.ForeignKey(Post)
value = models.IntegerField()
...some fields...
我需要做的一个查询需要做一个order_by
统计。然而:
Post.objects.all().order_by('tally')
产生以下模板错误:
渲染时遇到异常:无法将关键字“tally”解析为字段。选项有:date_created、description、id、is_active、name、related、slug、user、vote
有什么方法可以让order_by()
函数获取可调用对象吗?