2016-04-25 15 views
4

Gibt es eine Möglichkeit, mit einem Feld innerhalb des Modells und eines anderen Modellobjekts zu kommentieren?Django Annotate

Ich habe ein Restaurant Modell-Objekt, das ich ein "Gewicht" Feld kommentieren möchte. Meine Kriterien sind Anzahl der Bewertungen + Anzahl der Besuche. Ich möchte so etwas wie dies tun:

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

Der NUM_VISITS Teil einen Fehler geben, und ich bin nicht sicher, wie dies zu korrigieren. num_visits ist ein Feld im Restaurant Modell. Jede Hilfe wird geschätzt.

Antwort

3

Ich glaube, Sie so etwas wie diese

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

die Nutzung Es ist ein F expression benötigen.

+0

Das hat perfekt funktioniert! Für diejenigen, die sich wundern, sind die Importe: 'from django.db.models import Count 'und' from django.db.models import F' –

Verwandte Themen