2010-12-15 12 views
1

sagen, dass ich ein paar Modelle haben, der einen zur anderen wie so über Fremdschlüssel verbunden:eine Beziehung rückwärts folgend und mit Anmerkungen versehen die Ergebnisse

class Tourist(models.Model): 
    age = models.IntegerField() 

class Country(models.Model): 
    tourist = models.ForeignKey(Tourist) 

Ich weiß, dass ich von Tourist rückwärts arbeiten kann herauszufinden, wie viele Länder er sich mit der gewesen:

t = Tourist.objects.all()[0] 
t.country_set.count() 

Aber ist es eine Möglichkeit, die Anzahl der Länder, dass ein Tourist besucht hat, zu annotieren? Es wäre cool, wenn ich so etwas tun konnte

Tourist.objects.annotate(countries_visited=country_set.count()) 

Ich weiß, dass das letzte Bit von „Code“ es keinen Sinn macht, aber ich verlasse mich auf sie die Wünsche meines Herzens zu vermitteln. Ich weiß, ich könnte einfach so etwas tun:

[(t.pk, t.country_set.count()) for t in Tourist.objects.all()] 

Aber ich frage mich nur, ob es einen besseren Weg gibt, es zu tun. Vielen Dank!

Antwort

2

Sie sind schon ziemlich nah dran.

macht was Sie wollen, obwohl Sie die Beziehung rückwärts verfolgen.

+0

Whoa das ist genial! Danke Breezy! – IntrepidDude

Verwandte Themen