Quel est l'idiome recommandé pour vérifier si une requête a renvoyé des résultats?
Exemple:Vérification du jeu de requête vide dans Django
orgs = Organisation.objects.filter(name__iexact = 'Fjuk inc')
# If any results
# Do this with the results without querying again.
# Else, do something else...
Je suppose qu'il ya plusieurs façons de vérifier, mais je voudrais savoir comment un utilisateur expérimenté Django le ferait. La plupart des exemples dans la documentation ignorer le cas où rien n'a été trouvé ...
Cette semble également être préféré dans la documentation, par exemple: https: // docs.djangoproject.com/fr/1.8/topics/http/shortcuts/#id7 – Wtower
@Wtower Le code auquel vous faites référence a pour contrat d'élever 404 si l'expression de filtrage ne frappe aucun enregistrement ou de produire une 'liste' du résultat si il y a des enregistrements. Le code là va frapper la base de données juste une fois. S'ils ont utilisé 'exist()' ou 'count()' pour vérifier d'abord s'il y a des enregistrements retournés, ils vont frapper deux fois la base de données (une fois pour vérifier, une fois pour obtenir les enregistrements). C'est une situation spécifique. Il n'implique pas que dans le * cas général *, la méthode préférée pour savoir si une requête retournera des enregistrements est d'utiliser faire si 'queryset: ...' – Louis
@Louis le code auquel je me réfère est seulement un exemple qu'il contient une ligne 'sinon my_objects:' pour montrer que c'est comme ça qu'ils le font dans les docs. Tout le reste est totalement hors de propos, donc je ne comprends pas votre point. Ils pourraient aussi faire mille requêtes et ce serait tout à fait hors de propos car ce n'est pas le but de cette réponse, avec laquelle je précise que je suis d'accord. – Wtower