Je cherche à réduire un ensemble de requêtes pour un champ de formulaire qui a une clé étrangère à la table de l'utilisateur jusqu'au groupe auquel appartient un utilisateur.Django: Comment filtrer les utilisateurs appartenant à un groupe spécifique
Les groupes ont été précédemment associés par moi. Le modèle pourrait avoir quelque chose comme ce qui suit:
myuser = models.ForeignKey(User)
Et mon ModelForm est os nus:
class MyForm(ModelForm):
class Meta:
model = MyModel
Alors, quand j'instancier la forme que je fais quelque chose comme ça dans mon views.py:
form = MyForm()
maintenant, ma question est, comment puis-je prendre le champ myuser et filtrer les utilisateurs afin que de « foo » groupe apparaissent .. quelque chose comme:
form.fields["myuser"].queryset = ???
La requête SQL ressemble à ceci:
mysql> SELECT * from auth_user INNER JOIN auth_user_groups ON auth_user.id = auth_user_groups.user_id INNER JOIN auth_group ON auth_group.id = auth_user_groups.group_id WHERE auth_group.name = 'client';
Je voudrais éviter d'utiliser SQL cru bien. Est-il possible de le faire?
Brillant, merci Joe. J'ai posté le code SQL ci-dessus à droite lorsque vous avez posté la réponse. Appréciez les commentaires, fonctionne très bien. – randombits
Aucun prob, je suis revenu et édité pour vous montrer comment imprimer le SQL pour un jeu de requête afin que vous puissiez le comparer à ce que vous attendez. –