Obtenez tous liés à plusieurs-à-plusieurs objets à partir d'un Django QuerySet
J'ai un labyrinthe sinueux de l'interdépendance des modèles Django, avec plusieurs-à-plusieurs champs décrivant les relations.
Quelle est la façon la plus propre pour obtenir une liste des membres d'un modèle à partir d'un QuerySet?
Si j'ai un Élément de modèle avec un des groupes de ManyToMany pointant vers le modèle de groupe.
Si j'ai un queryset des Articles, des 'articles', comment puis-je obtenir ceci:
groups = items[0].groups.all().values_list('name', flat=True)
Mais pour l'ensemble? Ai-je besoin d'itérer à travers eux tous et ne set().intersect() ?
OriginalL'auteur samurailawngnome | 2011-01-28
Vous devez vous connecter pour publier un commentaire.
Une solution consiste à utiliser 2 requêtes.
Vous pouvez utiliser l'inverse des relations d'interroger tous
Group
s qu'unItem
dans votreitems
points.Vous pouvez également trouver utile d'utiliser
flat=True
en tant que paramètre àvalues_list
, qui renvoie le résultat sous la forme d'une liste de noms, plutôt qu'une liste de tuples de noms.mis à jour. Je trouve ça drôle, je l'ai enlevé à plat à partir de l'original post, parce que je l'ai confondu avec distinctes.
OriginalL'auteur