Je dois travailler avec un jeu de requête, qui est déjà filtré, par exemple. qs = queryset.filter (language = 'de') mais dans une opération ultérieure, je dois annuler une partie du filtrage déjà appliqué, par exemple ne pas prendre uniquement les lignes avec language = 'de' mais les entrées dans toutes les langues. Existe-t-il un moyen d'appliquer de nouveau le filtre et de faire en sorte que les nouveaux paramètres soient connectés à ceux qui existent déjà en utilisant OU ne pas ajouter, par exemple. si le queryset est déjà filtré pour language = 'de' et que je serais capable de connecter un 'OR language =' en 'à ça, ça me donnerait ce que je cherche! Merci!Django: Extension de Querysets/Connexion de plusieurs filtres avec OU
Répondre
Je ne crois pas qu'il soit possible de faire ce que vous demandez.
La façon dont vous faites ORs dans django est comme ceci:
Model.objects.filter(Q(question__startswith='Who') | Q(question__startswith='What'))
donc si vous vouliez vraiment faire ceci:
Model.objects.filter(Q(language='de') | Q(language='en'))
vous devez les mettre à la fois dans le même filtre () appelez donc vous ne pourrez pas ajouter l'autre ou clause dans un appel de filtre() plus tard.
Je pense que la raison pour laquelle vous essayez peut-être de faire cela est que vous vous inquiétez de cliquer à nouveau sur la base de données, mais la seule façon d'obtenir des résultats précis serait de réapparaître dans la base de données.
Si vous êtes simplement préoccupé par la production propre, le code DRY, vous pouvez mettre tous les filtres qui sont communs aux deux requêtes en haut, puis « fourchette » qui requête réglée plus tard, comme ceci:
shared_qs = Model.objects.filter(active=True)
german_entries = shared_qs.filter(language='de')
german_and_english = shared_qs.filter(Q(language='de') | Q(language='en'))
- 1. Django recherche plusieurs filtres
- 2. Plusieurs filtres avec Jquery
- 3. Plusieurs gestionnaires de filtres Symfony
- 4. Beaucoup de filtres plusieurs-à-plusieurs
- 5. modèles de filtres par rapport ManyToMany avec Django utilisateur
- 6. Django, extension de templatetags admin
- 7. Aide pour les filtres django
- 8. L'exemple "GLImageProcessing" fonctionne avec plusieurs filtres
- 9. extension de la vue django
- 10. Filtres Log4Net "OU"
- 11. Filtres de modèle Django stockés dans la base de données
- 12. Bibliothèque de filtres PHP ou classe
- 13. xsl: param et plusieurs filtres
- 14. Quelques problèmes avec GridView dans webpart avec plusieurs filtres
- 15. Création et utilisation de plusieurs filtres/recherches à l'aide de JTable ou de GlazedLists
- 16. plusieurs filtres Parse dans SQL
- 17. extension comme django-evolution
- 18. extension django usermodel
- 19. Extension de l'introspection Sud à Django
- 20. Django avec plusieurs bases de données
- 21. Modèle Django: plusieurs-à-plusieurs ou plusieurs-à-un?
- 22. consignation avec des filtres
- 23. Décorateurs sur les filtres Gabarit Django?
- 24. Chargement de plusieurs fichiers avec Django
- 25. Création de plusieurs sites avec django
- 26. Quelle est l'emplacement de django Tags et filtres intégrés?
- 27. reCAPTCHA ou filtres anti-spam?
- 28. Application d'un ou plusieurs filtres de niveau champ sur les résultats de recherche
- 29. Extension du panneau d'administration dans Django
- 30. NoRM MongoDB: Création de filtres complexes ou ajout de filtres à des requêtes existantes
Eh bien c'est ce que je pensais aussi, que je peux faire "Ou" des requêtes dans un filtre en utilisant Q! Je voulais juste savoir s'il y avait une autre possibilité! Merci! –
Il ne semble pas que vous le soyez, mais si vous utilisez des relations m2m, allez lire les docs sur ceux-ci attentivement, ils sont difficiles: http://docs.djangoproject.com/en/dev/topics/db/ requêtes/# spanning-multi-valu-relations –