J'ai plusieurs modèles et je veux retourner un jeu de requête de tous les modèles appartenant à un utilisateur, je me demande s'il est possible de retourner un jeu de Query à partir de plusieurs modèles?Django Queryset à travers les modèles?
Répondre
Je suppose que vous voulez dire que vous voulez renvoyer un seul jeu de requête de tous les objets appartenant à l'utilisateur de chaque modèle.
Avez-vous besoin d'un ensemble de requêtes ou simplement d'un itérable? AFAIK, les qs hétérogènes ne sont pas possibles. Cependant, vous pouvez facilement retourner une liste, un itérateur chaîné (itertools) ou un générateur pour faire ce que vous voulez. Cela suppose que les modèles référençant l'utilisateur sont connus à l'avance. En supposant related_name par défaut, les attributs de QuerySet connexes pourraient être accessibles par exemple utilisateur via le nom du modèle:
qs = getattr(user, '%s_set' % model_name.lower());
Bien sûr, en utilisant une liste hétérogène vous soit seulement en mesure d'utiliser des champs ou des méthodes qui sont définies dans tous ces modèles , ou vous devez déterminer le type de chaque objet pour effectuer des actions spécifiques de type.
Vos modèles doivent contenir des champs de relation (ForeigKey et ManyToManyField), avec un jeu d'arguments de mot-clé related_name. Consultez la documentation here.
- 1. Django QuerySet order
- 2. efficace Django QuerySet regex
- 3. Django: Filtre queryset pour * toutes les valeurs * d'un ManyToManyField
- 4. Django, mois actuel en queryset
- 5. Modèles Django - auto-jointure sur les deux FK dans un scénario M2M utilisant QuerySet
- 6. admin django: les succursales de l'entreprise doivent gérer uniquement leurs enregistrements à travers de nombreux modèles
- 7. Django héritage modèle, les modèles de filtrage
- 8. Django - queryset couvrant les relations nulles utilisant Q
- 9. Django QuerySet équivalent de SQL et entre
- 10. Django: débogage dans les modèles
- 11. django - Ordre récursif QuerySet par méthode
- 12. écriture Python/Django vue de « rejoindre » à travers trois modèles/tables
- 13. Dans Django QuerySet, comment renvoyer le ManyToManyField de plusieurs lignes?
- 14. Big domaine entier dans les modèles django
- 15. Magasin django forms.MultipleChoiceField dans les modèles directement
- 16. Modèles Django "ifless", "ifgreater"
- 17. Problème avec l'encodage dans les modèles Django
- 18. django refactorisation des modèles
- 19. Dans Django QuerySet, comment faire une négation dans le filtre?
- 20. Modèles Django localisés
- 21. queryset d'objets grâce à un modèle intermédiaire
- 22. Comment comparer la valeur de 2 champs dans Django QuerySet?
- 23. Dans Django QuerySet, comment vérifier un objet spécifique dans un champ ManyToMany?
- 24. Comment puis-je effectuer le filtrage des requêtes dans les modèles de django
- 25. Modèles Django: insérer des valeurs pour les variables javascript
- 26. Les modèles Django ne sont pas sérialisables ajax
- 27. Comment utiliser PyMock et Nez avec les modèles Django?
- 28. Comment obtenir tous les cas liés/parent de jeu d'instances de l'enfant sans boucle à travers ce dernier jeu
- 29. comment mettre des commentaires dans les modèles de django
- 30. Conversion de fichiers jsp en modèles Django?
double: http://stackoverflow.com/questions/313137/using-django-how-can-i-combine-two-queries-from-separate-models-into-one-query –