57 votes

Quelle #39 est la meilleure façon de gérer les objets de Django&#39.get ?

Chaque fois que je fais cela :

Il génère toujours une erreur lorsque rien n’est trouvé. Comment puis-je le gérer?

98voto

Joachim Pileborg Points 121221
<pre><code></code><p>Utiliser l’exception DoesNotExist du modèle</p></pre>

33voto

Rob Golding Points 1625

Souvent, il est plus utile d’utiliser directement la fonction de raccourci Django `` au lieu de l’API :

De toute évidence, cela lancera une erreur 404 si l’objet est introuvable, et votre code continuera s’il réussit.

16voto

zobbo Points 216

Vous pouvez également attraper un DoesNotExist générique. Selon les documents de http://docs.djangoproject.com/en/dev/ref/models/querysets/

11voto

Rafael Valverde Points 171

Une autre façon d’écrire :

est simplement :

Notez que les deux ne sont pas strictement les mêmes. La méthode Manager déclenche non seulement une exception dans le cas où il **n’y a pas d’enregistrement** que vous interrogez, mais également lorsque **plusieurs enregistrements** sont trouvés. L’utilisation lorsqu’il y a plusieurs enregistrements peut échouer votre logique métier silencieusement en renvoyant le premier enregistrement.

8voto

Anurag Uniyal Points 31931

Attraper l’exception

Alternativement, vous pouvez filtrer, ce qui renverra une liste vide si rien ne correspond

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X