Django Annotate

时间:2016-04-25 17:19:39

标签: python django

有没有办法通过模型中的字段和另一个模型对象进行注释?

我有一个Restaurant模型对象,我想要注释一个'权重'字段。我的标准是评论数量+访问次数。我想做这样的事情:

weighted = Restaurant.objects.annotate(
    weight = Count('reviews') + num_visits??).order_by('weight')

num_visits部分发出错误,我不知道如何解决这个问题。 num_visitsRestaurant模型中的字段。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:3)

我认为你需要这样的东西

qs = Restaurant.objects.annotate(weight=Count('reviews') + F('num_visits'))
weighted = qs.order_by('weight')

它正在使用F expression