Wenn ich eine Liste von User
Objekten wie dieseFügen Sie ein bestimmtes Objekt (aber gleichen Typen) zu einem gefilterten Objekt in Django
special_user_list = User.objects.filter(userprofile__user_type = 'special')
bekommen wie auch request.user
ich anfügen (die aktuellen angemeldeten Benutzer), das ist auch ein User
?
Ich weiß, dass ich wahrscheinlich so etwas wie
special_user_list = User.objects.filter(
Q(userprofile__user_type = 'special') |
Q(pk = request.user.pk)
)
tun können, aber ich bin nicht sicher, dass der obige Code kann doppelt umfassen request.user
(wenn request.user.get_profile().user_type = 'special'
als auch). Ich möchte auch vermeiden, die Datenbank mit einer komplizierten SQL-Anweisung zu treffen, um einen Benutzer hinzuzufügen, dem ich die Identität bereits kenne.
Wirklich? Ist ein gefiltertes Abfrage-Set nicht nur eine Liste? Ich kann Pythons 'append()' nicht benutzen? – hobbes3
Nein. Ein gefiltertes 'QuerySet' ist immer noch ein' QuerySet'. Seine Darstellung sieht nur * wie eine Liste aus. –
Ignacio, ich denke, @ hobbes3 muss nicht '.distinct()' hier tun, weil es nur eine linke äußere Verbindung gibt – okm