Luego de de nuestra extensa compilación de información pudimos solucionar este enigma que presentan algunos de nuestros lectores. Te regalamos la respuesta y deseamos servirte de gran apoyo.
Django genera algunas de sus propias excepciones, así como las excepciones estándar de Python.
Excepciones del núcleo de Django
Las clases de excepción del núcleo de Django se definen en django.core.exceptions
.
AppRegistryNotReady
exception AppRegistryNotReady
[source]-
Esta excepción se genera cuando se intenta utilizar modelos antes de proceso de carga de la aplicación, que inicializa el ORM, está completo.
ObjectDoesNotExist
exception ObjectDoesNotExist
[source]-
La clase base para
Model.DoesNotExist
excepciones. Atry/except
porObjectDoesNotExist
cogeráDoesNotExist
excepciones para todos los modelos.Ver
get()
.
EmptyResultSet
exception EmptyResultSet
[source]-
EmptyResultSet
se puede generar durante la generación de la consulta si una consulta no devuelve ningún resultado. La mayoría de los proyectos de Django no encontrarán esta excepción, pero podría ser útil para implementar búsquedas y expresiones personalizadas.
FieldDoesNotExist
exception FieldDoesNotExist
[source]-
los
FieldDoesNotExist
la excepción es provocada por un modelo_meta.get_field()
método cuando el campo solicitado no existe en el modelo o en los padres del modelo.
MultipleObjectsReturned
exception MultipleObjectsReturned
[source]-
La clase base para
Model.MultipleObjectsReturned
excepciones. Atry/except
porMultipleObjectsReturned
cogeráMultipleObjectsReturned
excepciones para todos los modelos.Ver
get()
.
SuspiciousOperation
exception SuspiciousOperation
[source]-
los
SuspiciousOperation
Se genera una excepción cuando un usuario ha realizado una operación que debería considerarse sospechosa desde una perspectiva de seguridad, como la manipulación de una cookie de sesión. Subclases deSuspiciousOperation
incluir:DisallowedHost
DisallowedModelAdminLookup
DisallowedModelAdminToField
DisallowedRedirect
InvalidSessionKey
RequestDataTooBig
SuspiciousFileOperation
SuspiciousMultipartForm
SuspiciousSession
TooManyFieldsSent
Si un
SuspiciousOperation
la excepción alcanza el nivel de controlador ASGI / WSGI se registra en elError
nivel y resulta en unHttpResponseBadRequest
. Ver el documentación de registro para más información.
PermissionDenied
exception PermissionDenied
[source]-
los
PermissionDenied
Se genera una excepción cuando un usuario no tiene permiso para realizar la acción solicitada.
ViewDoesNotExist
exception ViewDoesNotExist
[source]-
los
ViewDoesNotExist
la excepción es provocada pordjango.urls
cuando una vista solicitada no existe.
MiddlewareNotUsed
exception MiddlewareNotUsed
[source]-
los
MiddlewareNotUsed
Se genera una excepción cuando no se utiliza un middleware en la configuración del servidor.
ImproperlyConfigured
exception ImproperlyConfigured
[source]-
los
ImproperlyConfigured
se genera una excepción cuando Django está configurado incorrectamente de alguna manera, por ejemplo, si un valor ensettings.py
es incorrecto o no se puede analizar.
FieldError
exception FieldError
[source]-
los
FieldError
se genera una excepción cuando hay un problema con un campo de modelo. Esto puede suceder por varias razones:- Un campo en un modelo choca con un campo del mismo nombre de una clase base abstracta
- Un bucle infinito es causado por ordenar
- No se puede analizar una palabra clave a partir de los parámetros del filtro.
- No se puede determinar un campo a partir de una palabra clave en los parámetros de consulta.
- No se permite una unión en el campo especificado
- Un nombre de campo no es válido
- Una consulta contiene argumentos order_by no válidos
ValidationError
exception ValidationError
[source]-
los
ValidationError
se genera una excepción cuando los datos fallan en la validación del campo del formulario o del modelo. Para obtener más información sobre la validación, consulte Validación de formulario y campo, Validación del campo del modelo y el Referencia del validador.
NON_FIELD_ERRORS
NON_FIELD_ERRORS
ValidationError
Los correos electrónicos que no pertenecen a un campo en particular en un formulario o modelo se clasifican como NON_FIELD_ERRORS
. Esta constante se utiliza como key en diccionarios que, de lo contrario, asignan campos a su respectiva lista de errores.
BadRequest
exception BadRequest
[source]- Nuevo en Django 3.2.
los
BadRequest
Se genera una excepción cuando la solicitud no se puede procesar debido a un error del cliente. Si unBadRequest
La excepción alcanza el nivel de controlador ASGI / WSGI que da como resultado unaHttpResponseBadRequest
.
RequestAborted
exception RequestAborted
[source]-
los
RequestAborted
Se genera una excepción cuando un cuerpo HTTP que está leyendo el controlador se corta a mitad de camino y la conexión del cliente se cierra, o cuando el cliente no envía datos y alcanza un tiempo de espera en el que el servidor cierra la conexión.Es interno a los módulos del controlador HTTP y es poco probable que lo vea en otro lugar. Si está modificando el código de manejo de HTTP, debe plantearlo cuando encuentre una solicitud abortada para asegurarse de que el socket esté bien cerrado.
SynchronousOnlyOperation
exception SynchronousOnlyOperation
[source]-
los
SynchronousOnlyOperation
Se genera una excepción cuando el código que solo está permitido en el código Python sincrónico se llama desde un contexto asincrónico (un hilo con un bucle de eventos asincrónico en ejecución). Estas partes de Django generalmente dependen en gran medida de la seguridad de los subprocesos para funcionar y no funcionan correctamente en corutinas que comparten el mismo subproceso.Si está intentando llamar a un código que es solo sincrónico desde un subproceso asincrónico, cree un subproceso sincrónico y llámelo así. Puedes lograr esto con
asgiref.sync.sync_to_async()
.
Excepciones del solucionador de URL
Las excepciones de URL Resolver se definen en django.urls
.
Resolver404
exception Resolver404
-
los
Resolver404
la excepción es provocada porresolve()
si el camino pasara aresolve()
no se asigna a una vista. Es una subclase dedjango.http.Http404
.
NoReverseMatch
exception NoReverseMatch
-
los
NoReverseMatch
la excepción es provocada pordjango.urls
cuando una URL coincidente en su URLconf no se puede identificar en función de los parámetros proporcionados.
Excepciones de la base de datos
Las excepciones de la base de datos se pueden importar desde django.db
.
Django envuelve las excepciones estándar de la base de datos para que su código Django tenga una implementación común garantizada de estas clases.
exception Error
exception InterfaceError
exception DatabaseError
exception DataError
exception OperationalError
exception IntegrityError
exception InternalError
exception ProgrammingError
exception NotSupportedError
Los contenedores de Django para excepciones de bases de datos se comportan exactamente igual que las excepciones de bases de datos subyacentes. Ver PEP 249, la especificación de la API de la base de datos de Python v2.0, para obtener más información.
Según PEP 3134, a __cause__
attribute se establece con la excepción de la base de datos original (subyacente), lo que permite el acceso a cualquier información adicional proporcionada.
exception models.ProtectedError
Criado para evitar la eliminación de los objetos a los que se hace referencia cuando se usa django.db.models.PROTECT
. models.ProtectedError
es una subclase de IntegrityError
.
exception models.RestrictedError
Criado para evitar la eliminación de los objetos a los que se hace referencia cuando se usa django.db.models.RESTRICT
. models.RestrictedError
es una subclase de IntegrityError
.
Excepciones Http
Las excepciones HTTP se pueden importar desde django.http
.
UnreadablePostError
exception UnreadablePostError
-
UnreadablePostError
se genera cuando un usuario cancela una carga.
Excepciones de sesiones
Las excepciones de sesiones se definen en django.contrib.sessions.exceptions
.
SessionInterrupted
exception SessionInterrupted
[source]- Nuevo en Django 3.2.
SessionInterrupted
se genera cuando se destruye una sesión en una solicitud concurrente. Es una subclase deBadRequest
.
Excepciones de transacciones
Las excepciones de transacciones se definen en django.db.transaction
.
TransactionManagementError
exception TransactionManagementError
-
TransactionManagementError
se plantea para todos y cada uno de los problemas relacionados con las transacciones de la base de datos.
Prueba de excepciones del marco
Excepciones proporcionadas por el django.test
paquete.
RedirectCycleError
exception client.RedirectCycleError
-
RedirectCycleError
se genera cuando el cliente de prueba detecta un bucle o una cadena de redireccionamientos demasiado larga.
Excepciones de Python
Django también genera excepciones integradas de Python cuando es apropiado. Consulte la documentación de Python para obtener más información sobre el Excepciones integradas.