Django Undantag¶
Django tar upp några av sina egna undantag samt standard Python-undantag.
Django Core Undantag¶
Django core undantagsklasser definieras i django.core.exceptions.
AppRegistryNotReady¶
- exception AppRegistryNotReady[source]¶
Detta undantag uppstår när man försöker använda modeller innan app loading process, som initierar ORM, är klar.
ObjektDoesNotExist¶
- exception ObjectDoesNotExist[source]¶
Basklassen för
Model.DoesNotExistundantag. Entry/exceptförObjectDoesNotExistkommer att fångaDoesNotExistundantag för alla modeller.Se
get().
EmptyResultSet¶
Full resultatuppsättning¶
FieldDoesNotExist¶
Flera objekt återlämnade¶
- exception MultipleObjectsReturned[source]¶
Basklassen för
Model.MultipleObjectsReturnedundantag. Entry/exceptförMultipleObjectsReturnedkommer att fångaMultipleObjectsReturnedundantag för alla modeller.Se
get().
”Misstänkta operationer¶
- exception SuspiciousOperation[source]¶
Undantaget
SuspiciousOperationuppstår när en användare har utfört en åtgärd som bör betraktas som misstänkt ur ett säkerhetsperspektiv, t.ex. manipulering av en sessionskaka. Underklasser tillSuspiciousOperationinkluderar:DisallowedHostDisallowedModelAdminLookupDisallowedModelAdminToFieldDisallowedRedirectogiltig sessionsnyckel
”Begäran om uppgifter alltför stor
”Misstänkt filhantering
”Misstänksamt flerdelat formulär
”Misstänkt session
TooManyFieldsSentTooManyFilesSent
Om ett undantag från
SuspiciousOperationnår ASGI/WSGI-hanterarnivån loggas det påError-nivån och resulterar i enHttpResponseBadRequest. Se logging documentation för mer information.
PermissionDenied¶
- exception PermissionDenied[source]¶
Undantaget
PermissionDenieduppstår när en användare inte har behörighet att utföra den begärda åtgärden.
ViewDoesNotExist¶
- exception ViewDoesNotExist[source]¶
Undantaget
ViewDoesNotExisttas upp avdjango.urlsnär en begärd vy inte finns.
MiddlewareNotUsed¶
- exception MiddlewareNotUsed[source]¶
Undantaget
MiddlewareNotUseduppstår när en middleware inte används i serverkonfigurationen.
”Korrekt konfigurerad¶
- exception ImproperlyConfigured[source]¶
Undantaget
ImproperlyConfigureduppstår när Django på något sätt är felaktigt konfigurerat - till exempel om ett värde isettings.pyär felaktigt eller omöjligt att separera.
FieldError¶
- exception FieldError[source]¶
Undantaget
FieldErroruppstår när det finns ett problem med ett modellfält. Detta kan inträffa av flera skäl:Ett fält i en modell krockar med ett fält med samma namn från en abstrakt basklass
En oändlig loop orsakas av att man beställer
Ett nyckelord kan inte tolkas från filterparametrarna
Ett fält kan inte bestämmas utifrån ett nyckelord i frågeparametrarna
En join är inte tillåten på det angivna fältet
Ett fältnamn är ogiltigt
En fråga innehåller ogiltiga order_by-argument
Valideringsfel¶
- exception ValidationError[source]¶
Undantaget
ValidationErroruppstår när data inte klarar validering av formulär eller modellfält. Mer information om validering finns i Form and Field Validation, Model Field Validation och Validator Reference.
fEL SOM INTE ÄR FÄLTFEL¶
- NON_FIELD_ERRORS¶
”ValidationError” som inte hör till ett visst fält i ett formulär eller en modell klassificeras som ”Non_field_errors”. Denna konstant används som en nyckel i ordböcker som annars mappar fält till deras respektive lista över fel.
BadRequest¶
- exception BadRequest[source]¶
Undantaget
BadRequestuppstår när begäran inte kan behandlas på grund av ett klientfel. Om ettBadRequestundantag når ASGI/WSGI hanterarnivå resulterar det i enHttpResponseBadRequest.
Beställning avbruten¶
- exception RequestAborted[source]¶
Undantaget
RequestAborteduppstår när en HTTP-kropp som läses in av hanteraren avbryts mitt i processen och klientanslutningen stängs, eller när klienten inte skickar data och når en timeout där servern stänger anslutningen.Den är intern för HTTP-hanteringsmodulerna och det är osannolikt att du kommer att se den någon annanstans. Om du ändrar HTTP-hanteringskoden bör du ta upp detta när du stöter på en avbruten begäran för att se till att sockeln stängs på ett snyggt sätt.
SynkronOnlyOperation¶
- exception SynchronousOnlyOperation[source]¶
Undantaget
SynchronousOnlyOperationuppstår när kod som endast är tillåten i synkron Python-kod anropas från ett asynkront sammanhang (en tråd med en asynkron händelseslinga som körs). Dessa delar av Django är i allmänhet starkt beroende av tråd-säkerhet för att fungera och fungerar inte korrekt under coroutines som delar samma tråd.Om du försöker anropa kod som endast är synkron från en asynkron tråd, skapa då en synkron tråd och anropa den i den. Du kan åstadkomma detta med
asgiref.sync.sync_to_async().
Undantag för URL-resolver¶
Undantag för URL-resolver definieras i django.urls.
Resolver404¶
- exception Resolver404[source]¶
Undantaget
Resolver404tas upp avresolve()om sökvägen som skickas tillresolve()inte motsvarar en vy. Det är en underklass avdjango.http.Http404.
NoReverseMatch¶
- exception NoReverseMatch[source]¶
Undantaget
NoReverseMatchskapas avdjango.urlsnär en matchande URL i din URLconf inte kan identifieras baserat på de parametrar som anges.
Databasundantag¶
Databasundantag kan importeras från django.db.
Django omsluter standarddatabasundantagen så att din Django-kod har en garanterad gemensam implementering av dessa klasser.
Django wrappers för databasundantag beter sig exakt likadant som de underliggande databasundantagen. Se PEP 249, Python Database API Specification v2.0, för ytterligare information.
Enligt PEP 3134 sätts ett __cause__-attribut med det ursprungliga (underliggande) databasundantaget, vilket ger tillgång till ytterligare information som tillhandahålls.
- exception models.ProtectedError¶
Utlöses för att förhindra radering av refererade objekt när django.db.models.PROTECT används. models.ProtectedError är en underklass till IntegrityError.
- exception models.RestrictedError¶
Utlöses för att förhindra radering av refererade objekt när django.db.models.RESTRICT används. models.RestrictedError är en underklass till IntegrityError.
HTTP-undantag¶
HTTP-undantag kan importeras från django.http.
OläsligtPostFel¶
- exception UnreadablePostError[source]¶
UnreadablePostErroruppstår när en användare avbryter en uppladdning.
Undantag för sessioner¶
Sessionsundantag definieras i django.contrib.sessions.exceptions.
Session avbruten¶
- exception SessionInterrupted[source]¶
SessionInterruptedtas upp när en session förstörs i en samtidig begäran. Det är en underklass avBadRequest.
Undantag för transaktioner¶
Transaktionsundantag definieras i django.db.transaction.
TransactionManagementError¶
- exception TransactionManagementError[source]¶
TransactionManagementErroruppstår vid alla problem som har med databastransaktioner att göra.
Undantag i testramverket¶
Undantag som tillhandahålls av paketet django.test.
RedirectCycleError¶
- exception client.RedirectCycleError¶
RedirectCycleErroruppstår när testklienten upptäcker en loop eller en alltför lång kedja av omdirigeringar.
Python-undantag¶
Django tar också upp inbyggda Python-undantag när det är lämpligt. Se Python-dokumentationen för ytterligare information om Built-in Exceptions.