2016-04-25 19 views
4

モデル内のフィールドと別のモデルオブジェクトにアノテーションを付ける方法はありますか?Django Annotate

私はRestaurantモデルオブジェクトを持っています。これは、 'weight'フィールドに注釈を付けるものです。私の基準はレビューの数+訪問数です。

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

num_visits部分がエラーを与えていると私はこれを修正するかどうかはわかりません。私はこのような何かをしたいと思います。 num_visitsRestaurantモデルのフィールドです。どんな助けもありがとうございます。

答えて

3

私はあなたがそれはF expressionを利用しています。この

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

ようなものが必要だろうと思います。

+0

これは完全に機能しました!不思議に思う人のために、インポートは 'from django.db.models import Count'と' django.db.models import F'からです –

関連する問題