Exceptions de Django¶
Django peut aussi bien gĂ©nĂ©rer des exceptions quâil dĂ©finit lui-mĂȘme que des exceptions Python standards.
Exceptions principales de Django¶
Les classes dâexception de base de Django sont dĂ©finies dans django.core.exceptions
.
AppRegistryNotReady
¶
- exception AppRegistryNotReady[source]¶
Cette exception est gĂ©nĂ©rĂ©e lorsquâon essaie dâutiliser des modĂšles avant que le processus de chargement des applications, qui initialise lâORM, soit terminĂ©.
ObjectDoesNotExist
¶
- exception ObjectDoesNotExist[source]¶
La classe de base des exceptions
Model.DoesNotExist
. Une clausetry/except
avecObjectDoesNotExist
intercepte les exceptionsDoesNotExist
de tous les modĂšles.Voir
get()
.
EmptyResultSet
¶
- exception EmptyResultSet[source]¶
EmptyResultSet
peut ĂȘtre gĂ©nĂ©rĂ© durant la construction de la requĂȘte si celle-ci ne renvoie aucun rĂ©sultat. La plupart des projets Django ne rencontreront pas cette exception, mais elle peut ĂȘtre utile pour implĂ©menter des interrogations ou des expressions personnalisĂ©es.
FullResultSet
¶
- exception FullResultSet[source]¶
FullResultSet
peut ĂȘtre gĂ©nĂ©rĂ© durant la construction de la requĂȘte si celle-ci renverra la totalitĂ©. La plupart des projets Django ne rencontreront pas cette exception, mais elle peut ĂȘtre utile pour implĂ©menter des interrogations ou des expressions personnalisĂ©es.
FieldDoesNotExist
¶
MultipleObjectsReturned
¶
- exception MultipleObjectsReturned[source]¶
La classe de base des exceptions
Model.MultipleObjectsReturned
. Une clausetry/except
avecMultipleObjectsReturned
intercepte les exceptionsMultipleObjectsReturned
de tous les modĂšles.Voir
get()
.
SuspiciousOperation
¶
- exception SuspiciousOperation[source]¶
Lâexception
SuspiciousOperation
est gĂ©nĂ©rĂ©e lorsquâun utilisateur effectue une opĂ©ration considĂ©rĂ©e comme douteuse selon des critĂšres de sĂ©curitĂ©, comme lors de manipulations dâun cookie de session. Les sous-classes deSuspiciousOperation
comprennent :DisallowedHost
DisallowedModelAdminLookup
DisallowedModelAdminToField
DisallowedRedirect
InvalidSessionKey
RequestDataTooBig
SuspiciousFileOperation
SuspiciousMultipartForm
SuspiciousSession
TooManyFieldsSent
TooManyFilesSent
Si une exception
SuspiciousOperation
atteint le niveau du gestionnaire ASGI/WSGI, elle est journalisée au niveauError
et produit une exceptionHttpResponseBadRequest
. Consultez la documentation de la journalisation pour plus dâinformations.
PermissionDenied
¶
- exception PermissionDenied[source]¶
Lâexception
PermissionDenied
est gĂ©nĂ©rĂ©e lorsquâun utilisateur ne possĂšde pas la permission dâeffectuer lâaction demandĂ©e.
ViewDoesNotExist
¶
- exception ViewDoesNotExist[source]¶
Lâexception
ViewDoesNotExist
est générée pardjango.urls
lorsquâune vue demandĂ©e nâexiste pas.
MiddlewareNotUsed
¶
- exception MiddlewareNotUsed[source]¶
Lâexception
MiddlewareNotUsed
est gĂ©nĂ©rĂ©e lorsquâun middleware nâest pas utilisĂ© dans la configuration du serveur.
ImproperlyConfigured
¶
- exception ImproperlyConfigured[source]¶
Lâexception
ImproperlyConfigured
est générée lorsque la configuration de Django contient une erreur, par exemple si une valeur desettings.py
nâest pas correcte ou ne peut pas ĂȘtre lue correctement.
FieldError
¶
- exception FieldError[source]¶
Lâexception
FieldError
est gĂ©nĂ©rĂ©e lorsquâil y a un problĂšme avec un champ de modĂšle. Ceci peut arriver pour plusieurs raisons :Un champ de modĂšle est en conflit avec un champ de mĂȘme nom provenant dâune classe de base abstraite.
Un ordre de tri provoque une boucle sans fin.
Un mot-clĂ© ne peut pas ĂȘtre lu dans les paramĂštres dâun filtre.
Il nâest pas possible de faire correspondre un paramĂštre nommĂ© dâune requĂȘte avec un champ.
Une jointure nâest pas autorisĂ©e sur le champ indiquĂ©.
Un nom de champ nâest pas valide.
Une requĂȘte contient des paramĂštres
order_by
non conformes.
ValidationError
¶
- exception ValidationError[source]¶
Lâexception
ValidationError
est gĂ©nĂ©rĂ©e lorsque des donnĂ©es font Ă©chouer la validation de formulaire ou de champ de modĂšle. Pour plus dâinformations sur la validation, consultez Validation des formulaires et des champs, Validation des champs de modĂšle et RĂ©fĂ©rence de la validation.
NON_FIELD_ERRORS
¶
- NON_FIELD_ERRORS¶
Les exceptions ValidationError
qui ne sont pas liĂ©es Ă un champ particulier dâun formulaire ou dâun modĂšle sont classĂ©es comme NON_FIELD_ERRORS
. Cette constante est utilisĂ©e comme clĂ© dans des dictionnaires qui habituellement font correspondre des champs Ă leur liste dâerreurs respective.
BadRequest
¶
- exception BadRequest[source]¶
Lâexception
BadRequest
est gĂ©nĂ©rĂ©e lorsque la requĂȘte ne peut pas ĂȘtre traitĂ©e en raison dâune erreur du client. Si une exceptionBadRequest
atteint le niveau du traitement ASGI/WSGI, cela produit une réponseHttpResponseBadRequest
.
RequestAborted
¶
- exception RequestAborted[source]¶
Lâexception
RequestAborted
est produite lorsquâun corps de requĂȘte HTTP en cours de lecture par le gestionnaire est interrompu prĂ©maturĂ©ment et que la connexion cliente est fermĂ©e, ou quand le client nâenvoie pas de donnĂ©es et dĂ©passe le dĂ©lai aprĂšs lequel le serveur coupe la connexion.Elle est interne aux modules de gestion HTTP et il est rare de la voir ailleurs. SI vous modifiez du code de gestion HTTP, vous devriez gĂ©nĂ©rer cette exception lorsque vous ĂȘtes confrontĂ© Ă une requĂȘte interrompue pour ĂȘtre sĂ»r que le connecteur soit proprement fermĂ©.
SynchronousOnlyOperation
¶
- exception SynchronousOnlyOperation[source]¶
Lâexception
SynchronousOnlyOperation
est gĂ©nĂ©rĂ©e lorsque du code qui nâest autorisĂ© que dans un contexte de code Python synchrone est appelĂ© Ă partir dâun contexte asynchrone (un fil dâexĂ©cution avec une boucle Ă©vĂ©nementielle asynchrone en cours). Ces parties de Django sont gĂ©nĂ©ralement fortement dĂ©pendantes de lâisolation des fils dâexĂ©cution pour fonctionner et ne fonctionnent pas correctement avec des coroutines qui partagent un mĂȘme fil dâexĂ©cution.Si vous essayez dâappeler du code qui est purement synchrone Ă partir dâun fil dâexĂ©cution asynchrone, crĂ©ez un fil dâexĂ©cution synchrone et appelez ce code depuis lĂ . Ceci peut se faire Ă lâaide de
asgiref.sync.sync_to_async()
.
Exceptions du rĂ©solveur dâURL¶
Les exceptions du rĂ©solveur dâURL sont dĂ©finies dans django.urls
.
Resolver404
¶
- exception Resolver404[source]¶
Lâexception
Resolver404
est générée pardjango.urls.resolve()
si le chemin transmis Ăresolve()
ne correspond Ă aucune vue. Câest une sous-classe dedjango.http.Http404
.
NoReverseMatch
¶
- exception NoReverseMatch[source]¶
Lâexception
NoReverseMatch
est générée pardjango.urls
lorsquâaucune URL contenue dans votre configuration dâURL ne correspond aux paramĂštres fournis.
Exceptions de base de données¶
Les exceptions de base de donnĂ©es peuvent ĂȘtre importĂ©es Ă partir de django.db
.
Django adapte les exceptions de base de données standard afin que votre code Django puisse compter sur une implémentation commune de ces classes.
Les adaptateurs Django de ces exceptions de base de donnĂ©es se comportent exactement de la mĂȘme maniĂšre que leurs exceptions sous-jacentes. Consultez la PEP 249, la version 2.0 de la spĂ©cification Python dâAPI de base de donnĂ©es, pour de plus amples informations.
Se conformant Ă PEP 3134, un attribut __cause__
est dĂ©fini avec lâexception de base de donnĂ©es sous-jacente, permettant ainsi dâavoir accĂšs Ă dâĂ©ventuelles informations complĂ©mentaires.
- exception models.ProtectedError¶
Cette exception est gĂ©nĂ©rĂ©e pour empĂȘcher la suppression dâobjets rĂ©fĂ©rencĂ©s lors de lâutilisation de django.db.models.PROTECT
. models.ProtectedError
est une sous-classe de IntegrityError
.
- exception models.RestrictedError¶
Cette exception est gĂ©nĂ©rĂ©e pour empĂȘcher la suppression dâobjets rĂ©fĂ©rencĂ©s lors de lâutilisation de django.db.models.RESTRICT
. models.RestrictedError
est une sous-classe de IntegrityError
.
Exceptions HTTP¶
Les exceptions HTTP peuvent ĂȘtre importĂ©es Ă partir de django.http
.
UnreadablePostError
¶
- exception UnreadablePostError[source]¶
Lâexception
UnreadablePostError
est gĂ©nĂ©rĂ©e lorsquâun utilisateur annule un envoi de fichier.
Exceptions de session¶
Les exceptions de sessions sont définies dans django.contrib.sessions.exceptions
.
SessionInterrupted
¶
- exception SessionInterrupted[source]¶
SessionInterrupted
est gĂ©nĂ©rĂ©e lorsquâune session est supprimĂ©e dans une requĂȘte concurrente. Il sâagit dâune sous-classe deBadRequest
.
Exceptions de transaction¶
Les exceptions de transactions sont définies dans django.db.transaction
.
TransactionManagementError
¶
- exception TransactionManagementError[source]¶
Lâexception
TransactionManagementError
est générée lors de tout problÚme survenant en lien avec les transactions de bases de données.
Exceptions de lâinfrastructure de test¶
Exceptions définies dans le paquet django.test
.
RedirectCycleError
¶
- exception client.RedirectCycleError¶
Lâexception
RedirectCycleError
est générée lorsque le client de test détecte une boucle ou une chaßne de redirection trop longue.
Exceptions Python¶
Django gĂ©nĂšre Ă©galement des exceptions intĂ©grĂ©es de Python le cas Ă©chĂ©ant. Consultez la documentation de Python pour plus dâinformations concernant les Built-in Exceptions.