Django lanza algunas de sus propias excepciones así como excepciones estándar de Python.
Las clases de excepción del núcleo de Django están definidas en django.core.exceptions.
Esta excepción se levanta cuando se intenta utilizar modelos antes de que el proceso de carga del proceso de carga de la aplicación esté completo, que inicializa ORM.
ObjectDoesNotExist¶La clase base para las excepciones Model.DoesNotExist. Un try/except para ObjectDoesNotExist capturará excepciones DoesNotExist para todos los modelos.
Ver: get().
EmptyResultSet¶La excepción EmptyResultSet puede ser levantada durante la generación de consultas si una consulta no devolverá ningún resultado. La mayoría de los proyectos Django no encontrarán esta excepción, pero podría ser útil para implementar consultas y expresiones personalizadas.
FullResultSet¶FieldDoesNotExist¶MultipleObjectsReturned¶La clase base para las excepciones Model.MultipleObjectsReturned. Un try/except para MultipleObjectsReturned capturará excepciones MultipleObjectsReturned para todos los modelos.
Ver: get().
SuspiciousOperation¶La excepción SuspiciousOperation se levanta cuando un usuario ha realizado una operación que debe considerarse sospechosa desde una perspectiva de seguridad, como manipular una cookie de sesión. Las subclases de SuspiciousOperation incluyen:
DisallowedHost
DisallowedModelAdminLookup
DisallowedModelAdminToField
DisallowedRedirect
InvalidSessionKey
RequestDataTooBig
Operación sospechosa de archivo
Formulario multiparte sospechoso
Sesión sospechosa
Demasiados campos enviados
Demasiados archivos enviados
Si una excepción Operación sospechosa llega al nivel del manipulador ASGI/WSGI, se registra a nivel de Error y resulta en una HttpResponseBadRequest. Consulte la documentación sobre registro para obtener más información.
Permiso denegado¶Vista inexistente¶La excepción Vista inexistente se levanta por django.urls cuando una vista solicitada no existe.
MiddlewareNoUtilizado¶ConfiguraciónInadecuada¶ErrorDeCampo¶La excepción ErrorDeCampo se levanta cuando hay un problema con un campo del modelo. Esto puede suceder por varias razones:
Un campo en un modelo choca con un campo de mismo nombre desde una clase base abstracta
Se causa un bucle infinito al ordenar
Una palabra clave no se puede parsear de los parámetros del filtro
No se puede determinar un campo a partir de una palabra clave en los parámetros de consulta
Un join no está permitido en el campo especificado
El nombre de un campo es inválido
Una consulta contiene argumentos order_by no válidos
ValidationError¶La excepción ValidationError se levanta cuando los datos fallan en la validación de formulario o campo del modelo. Para obtener más información sobre la validación, consulte Form and Field Validation, Model Field Validation y el Validator Reference.
NON_FIELD_ERRORS¶ValidationError que no pertenecen a un campo particular en un formulario o modelo se clasifican como NON_FIELD_ERRORS. Esta constante se utiliza como clave en diccionarios que de otra manera mapean campos a su lista correspondiente de errores.
BadRequest¶La excepción BadRequest se levanta cuando la solicitud no puede ser procesada debido a un error del cliente. Si una excepción BadRequest llega al nivel del manipulador ASGI/WSGI, resulta en un HttpResponseBadRequest.
RequestAborted¶La traducción de los textos es la siguiente:
Es interno a los módulos de manejo HTTP y es poco probable que lo veas en otro lugar. Si estás modificando código de manejo HTTP, debes levantar esta excepción cuando encuentres una solicitud abortada para asegurarte de que el socket se cierre limpiamente.
OperaciónSóloSincrónica¶La SolicitudAbortada excepción se levanta cuando código que solo está permitido en Python sincrónico es llamado desde un contexto asíncrono (un hilo con un bucle de eventos asíncronos en ejecución). Estas partes de Django dependen generalmente de la seguridad de hilos para funcionar y no funcionan correctamente bajo coroutines compartiendo el mismo hilo.
Si estás intentando llamar código que solo es sincrónico desde un hilo asíncrono, entonces crea un hilo sincrónico y llama a él en ese. Puedes lograr esto con asgiref.sync.sync_to_async().
Las excepciones de resolución de URL están definidas en django.urls.
Resolver404¶La Resolver404 excepción se levanta por resolve() si el camino pasado a resolve() no se mapea a una vista. Es una subclase de django.http.Http404.
NoReverseMatch¶Las excepciones de base de datos pueden ser importadas desde django.db.
Django envuelve las excepciones de base de datos estándar para que tu código Django tenga una implementación común garantizada de estas clases.
Los wrappers de Django para excepciones de base de datos comportan exactamente lo mismo que las excepciones de base de datos subyacentes. Consulta PEP 249, la especificación de la API de bases de datos de Python v2.0, para obtener más información.
Según PEP 3134, se establece un atributo __cause__ con la excepción de base de datos original (subyacente), lo que permite acceder a cualquier información adicional proporcionada.
Se levanta para prevenir la eliminación de objetos referenciados cuando se utiliza django.db.models.PROTECT. models.ProtectedError es una subclase de IntegrityError.
Se levanta para prevenir la eliminación de objetos referenciados cuando se utiliza django.db.models.RESTRICT. models.RestrictedError es una subclase de IntegrityError.
Las excepciones HTTP pueden ser importadas desde django.http.
UnreadablePostError¶UnreadablePostError se levanta cuando un usuario cancela una subida.
Las excepciones de sesiones están definidas en django.contrib.sessions.exceptions.
SessionInterrupted¶SessionInterrupted se levanta cuando una sesión es destruida en una solicitud concurrente. Es una subclase de BadRequest.
Las excepciones de transacción están definidas en django.db.transaction.
TransactionManagementError¶TransactionManagementError se levanta por cualquier y todos los problemas relacionados con las transacciones de base de datos.
Excepciones proporcionadas por el paquete django.test.
ErrorDeRedireccionCiclica¶ErrorDeRedireccionCiclica se levanta cuando el cliente de pruebas detecta un bucle o una cadena demasiado larga de redirecciones.
Django levanta excepciones de Python integradas cuando es apropiado. Consulte la documentación de Python para obtener más información sobre las Built-in Exceptions.
may 31, 2026