2009-06-22 6 views
14

je le code suivant pour mettre tous mes utilisateurs d'un champ MultiChoice dans une listeDjango ORM: filtre par une liste d'objets

USERS = [] 
for user in User.objects.filter(groups__name='accountexec'): 
    USERS.append((user.id,user)) 

-je utiliser Log.objects.filter() pour obtenir tous les les journaux avec un utilisateur = à un utilisateur dans la liste des utilisateurs

Répondre

47

Utilisez la recherche __in:

Log.objects.filter(user__in=User.objects.filter(groups__name='accountexec')) 
+5

en fait, juste « Log.objects.filter (user__in = User.objects.filter (groups__name = 'accountexec ')) ". Django transformera cela en une seule requête + sous-requête. –

+2

Pris la liberté d'améliorer la requête suggérée selon la suggestion de James, espérons que c'est OK. –

Questions connexes