# Django 5.2.8 documentation

# 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

  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

  Basklassen för `Model.DoesNotExist` undantag. En `try/except` för `ObjectDoesNotExist` kommer att fånga `DoesNotExist` undantag för alla modeller.

  See `get()`.

### `ObjectNotUpdated`

New in Django 6.0.

exception ObjectNotUpdated

  The base class for `Model.NotUpdated` exceptions. A `try/except` for `ObjectNotUpdated` will catch `NotUpdated` exceptions for all models.

  See `save()`.

### `EmptyResultSet`

exception EmptyResultSet

  `EmptyResultSet` kan uppstå under frågegenereringen om en fråga inte kommer att returnera några resultat. De flesta Django-projekt kommer inte att stöta på detta undantag, men det kan vara användbart för att implementera anpassade uppslagningar och uttryck.

### `Full resultatuppsättning`

exception FullResultSet

  `FullResultSet` kan uppstå under frågegenereringen om en fråga kommer att matcha allt. De flesta Django-projekt kommer inte att stöta på detta undantag, men det kan vara användbart för att implementera anpassade uppslagningar och uttryck.

### `FieldDoesNotExist`

exception FieldDoesNotExist

  Undantaget `FieldDoesNotExist` skapas av en modells metod `_meta.get_field()` när det begärda fältet inte finns i modellen eller i modellens föräldrar.

### `Flera objekt återlämnade`

exception MultipleObjectsReturned

  Basklassen för `Model.MultipleObjectsReturned` undantag. En `try/except` för `MultipleObjectsReturned` kommer att fånga `MultipleObjectsReturned` undantag för alla modeller.

  See `get()`.

### ”Misstänkta operationer

exception SuspiciousOperation

  Undantaget `SuspiciousOperation` uppstå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 till `SuspiciousOperation` inkluderar:

  - `DisallowedHost`

  - `DisallowedModelAdminLookup`

  - `DisallowedModelAdminToField`

  - `DisallowedRedirect`

  - ogiltig sessionsnyckel

  - ”Begäran om uppgifter alltför stor

  - ”Misstänkt filhantering

  - ”Misstänksamt flerdelat formulär

  - ”Misstänkt session

  - `TooManyFieldsSent`

  - `TooManyFilesSent`

  Om ett undantag från `SuspiciousOperation` når ASGI/WSGI-hanterarnivån loggas det på `Error`-nivån och resulterar i en `HttpResponseBadRequest`. Se logging documentation för mer information.

### `PermissionDenied`

exception PermissionDenied

  Undantaget `PermissionDenied` uppstår när en användare inte har behörighet att utföra den begärda åtgärden.

### `ViewDoesNotExist`

exception ViewDoesNotExist

  Undantaget `ViewDoesNotExist` tas upp av `django.urls` när en begärd vy inte finns.

### `MiddlewareNotUsed`

exception MiddlewareNotUsed

  Undantaget `MiddlewareNotUsed` uppstår när en middleware inte används i serverkonfigurationen.

### ”Korrekt konfigurerad

exception ImproperlyConfigured

  Undantaget `ImproperlyConfigured` uppstår när Django på något sätt är felaktigt konfigurerat - till exempel om ett värde i `settings.py` är felaktigt eller omöjligt att separera.

### `FieldError`

exception FieldError

  Undantaget `FieldError` uppstå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

  Undantaget `ValidationError` uppstå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

  Undantaget `BadRequest` uppstår när begäran inte kan behandlas på grund av ett klientfel. Om ett `BadRequest` undantag når ASGI/WSGI hanterarnivå resulterar det i en `HttpResponseBadRequest`.

### `Beställning avbruten`

exception RequestAborted

  Undantaget `RequestAborted` uppstå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

  Undantaget `SynchronousOnlyOperation` uppstå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

  The `Resolver404` exception is raised by `resolve()` if the path passed to `resolve()` doesn’t map to a view. It’s a subclass of `django.http.Http404`.

### `NoReverseMatch`

exception NoReverseMatch

  Undantaget `NoReverseMatch` skapas av `django.urls` nä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.

exception Error

exception InterfaceError

exception DatabaseError

exception DataError

exception OperationalError

exception IntegrityError

exception InternalError

exception ProgrammingError

exception NotSupportedError

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

  `UnreadablePostError` uppstår när en användare avbryter en uppladdning.

## Undantag för sessioner

Sessionsundantag definieras i `django.contrib.sessions.exceptions`.

### `Session avbruten`

exception SessionInterrupted

  `SessionInterrupted` tas upp när en session förstörs i en samtidig begäran. Det är en underklass av `BadRequest`.

## Undantag för transaktioner

Transaktionsundantag definieras i `django.db.transaction`.

### `TransactionManagementError`

exception TransactionManagementError

  `TransactionManagementError` uppstå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

  `RedirectCycleError` uppstå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.