2016-04-25 77 views
4

有没有一种方法可以通过模型中的字段和另一个模型对象进行注释?Django注释

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

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

的NUM_VISITS部分给了一个错误,我不知道如何解决此。 num_visitsRestaurant模型中的字段。任何帮助表示赞赏。

回答

3

我认为你需要像这样

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

它利用的F expression的。

+0

这工作完美!对于那些想知道的人来说,导入是:'from django.db.models import Count' and'from django.db.models import F' –