Django Exceptions. Django Software
إعلان
إعلان
Django Documentation, Release 1.11.8.dev20171115160334
Examples: from django.core
import management from django.core.management.commands
import loaddata management.call_command( 'flush' , verbosity= 0 , interactive=False) management.call_command( 'loaddata' , 'test_data' , verbosity= 0 ) management.call_command(loaddata.Command(), 'test_data' , verbosity= 0 )
Note that command options that take no arguments are passed as keywords with True or False, as you can see with the interactive option above.
Named arguments can be passed by using either one of the following syntaxes:
# Similar to the command line management.call_command( 'dumpdata' , '--natural-foreign' )
# Named argument similar to the command line minus the initial dashes and
# with internal dashes replaced by underscores management.call_command( 'dumpdata' , natural_foreign=True)
# `use_natural_foreign_keys` is the option destination variable management.call_command( 'dumpdata' , use_natural_foreign_keys=True)
Some command options have different names when using call_command() instead of django-admin or manage.py
.
For example, django-admin createsuperuser --no-input translates to call_command('createsuperuser', interactive=False) .
To find what keyword argument name to use for call_command(), check the command’s source code for the dest argument passed to parser.add_argument() .
Command options which take multiple options are passed a list: management.call_command( 'dumpdata' , exclude=[ 'contenttypes' , 'auth' ])
The return value of the call_command() function is the same as the return value of the handle() method of the command.
call_command() now returns the value received from the command.handle() method. It now also accepts a command object as the first argument.
6.9.1 Output redirection
Note that you can redirect standard output and error streams as all commands support the stdout and stderr options. For example, you could write: with open ( '/path/to/command_output' ) as f: management.call_command( 'dumpdata' , stdout=f)
6.10 Django Exceptions
Django raises some of its own exceptions as well as standard Python exceptions.
6.10. Django Exceptions 1019
Django Documentation, Release 1.11.8.dev20171115160334
6.10.1 Django Core Exceptions
Django core exception classes are defined in django.core.exceptions.
AppRegistryNotReady exception AppRegistryNotReady
This exception is raised when attempting to use models before the
app loading process , which initializes the
ORM, is complete.
ObjectDoesNotExist exception ObjectDoesNotExist
The base class for
exceptions; a try/except for ObjectDoesNotExist will catch
exceptions for all models.
See
for further information on
and
EmptyResultSet exception EmptyResultSet
EmptyResultSet may be raised during query generation if a query won’t return any results. Most Django projects won’t encounter this exception, but it might be useful for implementing custom lookups and expressions.
In older versions, it’s only importable from django.db.models.sql.
FieldDoesNotExist exception FieldDoesNotExist
The FieldDoesNotExist exception is raised by a model’s _meta.get_field() method when the requested field does not exist on the model or on the model’s parents.
MultipleObjectsReturned exception MultipleObjectsReturned
The
exception is raised by a query if only one object is expected, but multiple objects are returned. A base version of this exception is provided in
model class contains a subclassed version that can be used to identify the specific object type that has returned multiple objects.
See
for further information.
SuspiciousOperation exception SuspiciousOperation
The
exception is raised when a user has performed an operation that should be considered suspicious from a security perspective, such as tampering with a session cookie. Subclasses of
SuspiciousOperation include:
• DisallowedHost
1020 Chapter 6. API Reference
Django Documentation, Release 1.11.8.dev20171115160334
• DisallowedModelAdminLookup
• DisallowedModelAdminToField
• DisallowedRedirect
• InvalidSessionKey
• RequestDataTooBig
• SuspiciousFileOperation
• SuspiciousMultipartForm
• SuspiciousSession
• TooManyFieldsSent
If a SuspiciousOperation exception reaches the WSGI handler level it is logged at the Error level and results in a
HttpResponseBadRequest . See the
for more information.
PermissionDenied exception PermissionDenied
The
exception is raised when a user does not have permission to perform the action requested.
ViewDoesNotExist exception ViewDoesNotExist
The
exception is raised by
when a requested view does not exist.
MiddlewareNotUsed exception MiddlewareNotUsed
The
exception is raised when a middleware is not used in the server configuration.
ImproperlyConfigured exception ImproperlyConfigured
The
exception is raised when Django is somehow improperly configured – for example, if a value in settings.py is incorrect or unparseable.
FieldError exception FieldError
The
exception is raised when there is a problem with a model field. This can happen for several reasons:
• A field in a model clashes with a field of the same name from an abstract base class
• An infinite loop is caused by ordering
• A keyword cannot be parsed from the filter parameters
• A field cannot be determined from a keyword in the query parameters
6.10. Django Exceptions 1021
Django Documentation, Release 1.11.8.dev20171115160334
• A join is not permitted on the specified field
• A field name is invalid
• A query contains invalid order_by arguments
ValidationError exception ValidationError
The
exception is raised when data fails form or model field validation. For more information about validation, see
and the
NON_FIELD_ERRORS
NON_FIELD_ERRORS
ValidationError s that don’t belong to a particular field in a form or model are classified as
NON_FIELD_ERRORS . This constant is used as a key in dictionaries that otherwise map fields to their respective list of errors.
6.10.2 URL Resolver exceptions
URL Resolver exceptions are defined in django.urls.
Deprecated since version 1.10: In older versions, these exceptions are located in django.core.urlresolvers.
Importing from the old location will continue to work until Django 2.0.
Resolver404 exception Resolver404
The
exception is raised by
if the path passed to resolve() doesn’t map to a view. It’s a subclass of
NoReverseMatch exception NoReverseMatch
The
exception is raised by
when a matching URL in your URLconf cannot be identified based on the parameters supplied.
6.10.3 Database Exceptions
Database exceptions may be imported from django.db.
Django wraps the standard database exceptions so that your Django code has a guaranteed common implementation of these classes.
exception Error exception InterfaceError exception DatabaseError exception DataError
1022 Chapter 6. API Reference
Django Documentation, Release 1.11.8.dev20171115160334
exception OperationalError exception IntegrityError exception InternalError exception ProgrammingError exception NotSupportedError
The Django wrappers for database exceptions behave exactly the same as the underlying database exceptions. See
PEP 249 , the Python Database API Specification v2.0, for further information.
As per PEP 3134 , a __cause__ attribute is set with the original (underlying) database exception, allowing access to any additional information provided. (Note that this attribute is available under both Python 2 and Python 3, although
PEP 3134 normally only applies to Python 3. To avoid unexpected differences with Python 3, Django will also ensure that the exception made available via __cause__ has a usable __traceback__ attribute.)
The __traceback__ attribute described above was added.
exception models.ProtectedError
Raised to prevent deletion of referenced objects when using
is a subclass of
6.10.4 Http Exceptions
Http exceptions may be imported from django.http.
UnreadablePostError exception UnreadablePostError
is raised when a user cancels an upload.
6.10.5 Transaction Exceptions
Transaction exceptions are defined in django.db.transaction.
TransactionManagementError exception TransactionManagementError
is raised for any and all problems related to database transactions.
6.10.6 Testing Framework Exceptions
Exceptions provided by the django.test package.
RedirectCycleError exception client.RedirectCycleError
is raised when the test client detects a loop or an overly long chain of redirects.
6.10. Django Exceptions 1023
تنزيل
إعلان