2009-05-20 2 views
0

Ich habe das Konzept eines Teams in meiner Django App.Wie führe ich eine Abfrage in Django durch, die alle Projekte auswählt, in denen ich ein Teammitglied bin?

Ich möchte alle Teams holen, in denen der aktuell angemeldete Benutzer Mitglied ist. Etwas in den Linien von

Team.objects.all().filter(request.user.id__in = team_members.all()) 

Dies offensichtlich funktioniert nicht. Hat jemand einige Vorschläge, wie man solche Abfragen durchführt, ohne direkt zu SQL zu gehen? Ich habe mir the django documentation von "in" -Abfragen angesehen, aber ich konnte dort meinen Anwendungsfall nicht finden.

Vielen Dank! Nick.

Antwort

4

Sie brauchen hier nicht in, Django behandelt das automatisch in einer ManyToMany-Suche.

Auch müssen Sie verstehen, dass die Datenbankfelder immer auf links der Suche sein müssen, da sie tatsächlich als Parameter für eine Funktion behandelt werden.

Was Sie wirklich wollen, ist sehr einfach:

Team.objects.filter(team_members=request.user) 

oder

request.user.team_set.all() 
+0

Vielen Dank für diesen Tipp, muss ich dies in der Dokumentation verpasst haben, das ist genau das, was ich brauche. – Nick

Verwandte Themen