2016-01-24 21:26:11 +00:00
|
|
|
|
==================================
|
|
|
|
|
``django-admin`` and ``manage.py``
|
|
|
|
|
==================================
|
2005-08-10 20:24:51 +00:00
|
|
|
|
|
2014-07-26 11:21:52 +00:00
|
|
|
|
``django-admin`` is Django's command-line utility for administrative tasks.
|
2005-08-10 20:24:51 +00:00
|
|
|
|
This document outlines all it can do.
|
|
|
|
|
|
2019-02-06 18:53:07 +00:00
|
|
|
|
In addition, ``manage.py`` is automatically created in each Django project. It
|
|
|
|
|
does the same thing as ``django-admin`` but also sets the
|
|
|
|
|
:envvar:`DJANGO_SETTINGS_MODULE` environment variable so that it points to your
|
|
|
|
|
project's ``settings.py`` file.
|
2006-01-11 02:06:27 +00:00
|
|
|
|
|
2014-07-26 11:21:52 +00:00
|
|
|
|
The ``django-admin`` script should be on your system path if you installed
|
2019-11-02 04:08:23 +00:00
|
|
|
|
Django via ``pip``. If it's not in your path, ensure you have your virtual
|
|
|
|
|
environment activated.
|
2006-05-02 01:31:56 +00:00
|
|
|
|
|
2006-01-11 02:06:27 +00:00
|
|
|
|
Generally, when working on a single Django project, it's easier to use
|
2014-07-26 11:21:52 +00:00
|
|
|
|
``manage.py`` than ``django-admin``. If you need to switch between multiple
|
|
|
|
|
Django settings files, use ``django-admin`` with
|
2016-01-12 01:59:34 +00:00
|
|
|
|
:envvar:`DJANGO_SETTINGS_MODULE` or the :option:`--settings` command line
|
2013-04-12 10:10:26 +00:00
|
|
|
|
option.
|
2006-01-11 02:06:27 +00:00
|
|
|
|
|
2014-07-26 11:21:52 +00:00
|
|
|
|
The command-line examples throughout this document use ``django-admin`` to
|
2015-04-30 15:54:45 +00:00
|
|
|
|
be consistent, but any example can use ``manage.py`` or ``python -m django``
|
|
|
|
|
just as well.
|
|
|
|
|
|
2005-08-10 20:24:51 +00:00
|
|
|
|
Usage
|
|
|
|
|
=====
|
|
|
|
|
|
2018-01-20 17:38:48 +00:00
|
|
|
|
.. console::
|
2006-01-11 05:54:13 +00:00
|
|
|
|
|
2014-07-26 11:21:52 +00:00
|
|
|
|
$ django-admin <command> [options]
|
2013-12-25 19:54:14 +00:00
|
|
|
|
$ manage.py <command> [options]
|
2015-04-30 15:54:45 +00:00
|
|
|
|
$ python -m django <command> [options]
|
2005-08-10 20:24:51 +00:00
|
|
|
|
|
2010-10-23 16:37:51 +00:00
|
|
|
|
``command`` should be one of the commands listed in this document.
|
2007-09-09 21:57:59 +00:00
|
|
|
|
``options``, which is optional, should be zero or more of the options available
|
2010-10-23 16:37:51 +00:00
|
|
|
|
for the given command.
|
2005-08-10 20:24:51 +00:00
|
|
|
|
|
2007-09-09 21:57:59 +00:00
|
|
|
|
Getting runtime help
|
|
|
|
|
--------------------
|
2005-08-10 20:24:51 +00:00
|
|
|
|
|
2012-02-07 18:46:29 +00:00
|
|
|
|
.. django-admin:: help
|
2008-08-23 22:25:40 +00:00
|
|
|
|
|
2014-07-26 11:21:52 +00:00
|
|
|
|
Run ``django-admin help`` to display usage information and a list of the
|
2012-02-07 18:46:29 +00:00
|
|
|
|
commands provided by each application.
|
|
|
|
|
|
2014-07-26 11:21:52 +00:00
|
|
|
|
Run ``django-admin help --commands`` to display a list of all available
|
2012-02-07 18:46:29 +00:00
|
|
|
|
commands.
|
|
|
|
|
|
2014-07-26 11:21:52 +00:00
|
|
|
|
Run ``django-admin help <command>`` to display a description of the given
|
2012-02-07 18:46:29 +00:00
|
|
|
|
command and a list of its available options.
|
2007-09-09 21:57:59 +00:00
|
|
|
|
|
|
|
|
|
App names
|
|
|
|
|
---------
|
|
|
|
|
|
2010-10-23 16:37:51 +00:00
|
|
|
|
Many commands take a list of "app names." An "app name" is the basename of
|
2011-05-29 17:41:04 +00:00
|
|
|
|
the package containing your models. For example, if your :setting:`INSTALLED_APPS`
|
2007-09-09 21:57:59 +00:00
|
|
|
|
contains the string ``'mysite.blog'``, the app name is ``blog``.
|
|
|
|
|
|
|
|
|
|
Determining the version
|
|
|
|
|
-----------------------
|
2005-08-10 20:24:51 +00:00
|
|
|
|
|
2012-02-07 18:46:29 +00:00
|
|
|
|
.. django-admin:: version
|
2008-08-23 22:25:40 +00:00
|
|
|
|
|
2014-07-26 11:21:52 +00:00
|
|
|
|
Run ``django-admin version`` to display the current Django version.
|
2007-09-09 21:57:59 +00:00
|
|
|
|
|
2016-01-12 14:19:07 +00:00
|
|
|
|
The output follows the schema described in :pep:`440`::
|
2007-09-09 21:57:59 +00:00
|
|
|
|
|
2012-02-09 08:37:33 +00:00
|
|
|
|
1.4.dev17026
|
|
|
|
|
1.4a1
|
|
|
|
|
1.4
|
2007-09-09 21:57:59 +00:00
|
|
|
|
|
2008-08-23 22:25:40 +00:00
|
|
|
|
Displaying debug output
|
|
|
|
|
-----------------------
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. program:: None
|
|
|
|
|
|
2021-08-31 07:14:47 +00:00
|
|
|
|
Use :option:`--verbosity`, where it is supported, to specify the amount of
|
|
|
|
|
notification and debug information that ``django-admin`` prints to the console.
|
2008-08-23 22:25:40 +00:00
|
|
|
|
|
2010-10-23 16:37:51 +00:00
|
|
|
|
Available commands
|
|
|
|
|
==================
|
2007-09-09 21:57:59 +00:00
|
|
|
|
|
2016-01-24 21:26:11 +00:00
|
|
|
|
``check``
|
|
|
|
|
---------
|
2013-06-14 23:02:29 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin:: check [app_label [app_label ...]]
|
2014-01-20 02:45:21 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Uses the :doc:`system check framework </ref/checks>` to inspect the entire
|
|
|
|
|
Django project for common problems.
|
2014-01-20 02:45:21 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
By default, all apps will be checked. You can check a subset of apps by
|
|
|
|
|
providing a list of app labels as arguments::
|
2013-06-15 17:14:30 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
django-admin check auth admin myapp
|
2013-06-14 23:02:29 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --tag TAGS, -t TAGS
|
2014-01-20 02:45:21 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
The system check framework performs many different types of checks that are
|
|
|
|
|
:ref:`categorized with tags <system-check-builtin-tags>`. You can use these
|
|
|
|
|
tags to restrict the checks performed to just those in a particular category.
|
|
|
|
|
For example, to perform only models and compatibility checks, run::
|
2014-01-20 02:45:21 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
django-admin check --tag models --tag compatibility
|
2013-06-14 23:02:29 +00:00
|
|
|
|
|
2020-02-07 07:46:13 +00:00
|
|
|
|
.. django-admin-option:: --database DATABASE
|
|
|
|
|
|
|
|
|
|
Specifies the database to run checks requiring database access::
|
|
|
|
|
|
|
|
|
|
django-admin check --database default --database other
|
|
|
|
|
|
|
|
|
|
By default, these checks will not be run.
|
|
|
|
|
|
2014-04-10 13:43:55 +00:00
|
|
|
|
.. django-admin-option:: --list-tags
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Lists all available tags.
|
2014-04-10 13:43:55 +00:00
|
|
|
|
|
2014-09-12 18:50:36 +00:00
|
|
|
|
.. django-admin-option:: --deploy
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Activates some additional checks that are only relevant in a deployment setting.
|
2014-09-12 18:50:36 +00:00
|
|
|
|
|
|
|
|
|
You can use this option in your local development environment, but since your
|
|
|
|
|
local development settings module may not have many of your production settings,
|
|
|
|
|
you will probably want to point the ``check`` command at a different settings
|
2020-04-30 10:12:05 +00:00
|
|
|
|
module, either by setting the :envvar:`DJANGO_SETTINGS_MODULE` environment
|
|
|
|
|
variable, or by passing the ``--settings`` option::
|
2014-09-12 18:50:36 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
django-admin check --deploy --settings=production_settings
|
2014-09-12 18:50:36 +00:00
|
|
|
|
|
|
|
|
|
Or you could run it directly on a production or staging deployment to verify
|
|
|
|
|
that the correct settings are in use (omitting ``--settings``). You could even
|
|
|
|
|
make it part of your integration test suite.
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --fail-level {CRITICAL,ERROR,WARNING,INFO,DEBUG}
|
2015-10-04 18:16:12 +00:00
|
|
|
|
|
|
|
|
|
Specifies the message level that will cause the command to exit with a non-zero
|
|
|
|
|
status. Default is ``ERROR``.
|
|
|
|
|
|
2016-01-24 21:26:11 +00:00
|
|
|
|
``compilemessages``
|
|
|
|
|
-------------------
|
2008-07-06 06:39:44 +00:00
|
|
|
|
|
2009-11-12 13:58:32 +00:00
|
|
|
|
.. django-admin:: compilemessages
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Compiles ``.po`` files created by :djadmin:`makemessages` to ``.mo`` files for
|
|
|
|
|
use with the built-in gettext support. See :doc:`/topics/i18n/index`.
|
2008-07-06 06:39:44 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --locale LOCALE, -l LOCALE
|
2008-07-06 06:39:44 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Specifies the locale(s) to process. If not provided, all locales are processed.
|
|
|
|
|
|
|
|
|
|
.. django-admin-option:: --exclude EXCLUDE, -x EXCLUDE
|
|
|
|
|
|
|
|
|
|
Specifies the locale(s) to exclude from processing. If not provided, no locales
|
2014-03-24 13:03:06 +00:00
|
|
|
|
are excluded.
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --use-fuzzy, -f
|
|
|
|
|
|
2020-06-12 13:29:13 +00:00
|
|
|
|
Includes `fuzzy translations`_ into compiled files.
|
2014-11-15 22:56:37 +00:00
|
|
|
|
|
2008-07-06 06:39:44 +00:00
|
|
|
|
Example usage::
|
|
|
|
|
|
2014-07-26 11:21:52 +00:00
|
|
|
|
django-admin compilemessages --locale=pt_BR
|
2014-11-15 22:56:37 +00:00
|
|
|
|
django-admin compilemessages --locale=pt_BR --locale=fr -f
|
2014-07-26 11:21:52 +00:00
|
|
|
|
django-admin compilemessages -l pt_BR
|
2014-11-15 22:56:37 +00:00
|
|
|
|
django-admin compilemessages -l pt_BR -l fr --use-fuzzy
|
2014-07-26 11:21:52 +00:00
|
|
|
|
django-admin compilemessages --exclude=pt_BR
|
|
|
|
|
django-admin compilemessages --exclude=pt_BR --exclude=fr
|
|
|
|
|
django-admin compilemessages -x pt_BR
|
|
|
|
|
django-admin compilemessages -x pt_BR -x fr
|
2012-06-07 09:23:25 +00:00
|
|
|
|
|
2020-06-12 13:29:13 +00:00
|
|
|
|
.. _fuzzy translations: https://www.gnu.org/software/gettext/manual/html_node/Fuzzy-Entries.html
|
|
|
|
|
|
2019-01-27 19:35:17 +00:00
|
|
|
|
.. django-admin-option:: --ignore PATTERN, -i PATTERN
|
|
|
|
|
|
|
|
|
|
Ignores directories matching the given :mod:`glob`-style pattern. Use
|
|
|
|
|
multiple times to ignore more.
|
|
|
|
|
|
|
|
|
|
Example usage::
|
|
|
|
|
|
|
|
|
|
django-admin compilemessages --ignore=cache --ignore=outdated/*/locale
|
|
|
|
|
|
2016-01-24 21:26:11 +00:00
|
|
|
|
``createcachetable``
|
|
|
|
|
--------------------
|
2005-09-25 22:03:30 +00:00
|
|
|
|
|
2009-11-12 13:58:32 +00:00
|
|
|
|
.. django-admin:: createcachetable
|
2005-09-25 22:03:30 +00:00
|
|
|
|
|
2015-01-26 20:39:52 +00:00
|
|
|
|
Creates the cache tables for use with the database cache backend using the
|
|
|
|
|
information from your settings file. See :doc:`/topics/cache` for more
|
|
|
|
|
information.
|
2005-09-25 22:03:30 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --database DATABASE
|
2013-01-05 22:43:01 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Specifies the database in which the cache table(s) will be created. Defaults to
|
|
|
|
|
``default``.
|
|
|
|
|
|
|
|
|
|
.. django-admin-option:: --dry-run
|
|
|
|
|
|
|
|
|
|
Prints the SQL that would be run without actually running it, so you can
|
|
|
|
|
customize it or use the migrations framework.
|
2015-04-01 21:33:27 +00:00
|
|
|
|
|
2016-01-24 21:26:11 +00:00
|
|
|
|
``dbshell``
|
|
|
|
|
-----------
|
2008-06-11 04:34:03 +00:00
|
|
|
|
|
2008-08-23 22:25:40 +00:00
|
|
|
|
.. django-admin:: dbshell
|
|
|
|
|
|
2008-06-11 04:34:03 +00:00
|
|
|
|
Runs the command-line client for the database engine specified in your
|
2016-01-12 01:59:34 +00:00
|
|
|
|
:setting:`ENGINE <DATABASE-ENGINE>` setting, with the connection parameters
|
|
|
|
|
specified in your :setting:`USER`, :setting:`PASSWORD`, etc., settings.
|
2008-06-11 04:34:03 +00:00
|
|
|
|
|
2011-10-14 00:12:01 +00:00
|
|
|
|
* For PostgreSQL, this runs the ``psql`` command-line client.
|
|
|
|
|
* For MySQL, this runs the ``mysql`` command-line client.
|
|
|
|
|
* For SQLite, this runs the ``sqlite3`` command-line client.
|
2015-09-15 20:01:31 +00:00
|
|
|
|
* For Oracle, this runs the ``sqlplus`` command-line client.
|
2008-06-11 04:34:03 +00:00
|
|
|
|
|
2019-06-17 14:54:55 +00:00
|
|
|
|
This command assumes the programs are on your ``PATH`` so that a call to
|
2015-09-15 20:01:31 +00:00
|
|
|
|
the program name (``psql``, ``mysql``, ``sqlite3``, ``sqlplus``) will find the
|
|
|
|
|
program in the right place. There's no way to specify the location of the
|
|
|
|
|
program manually.
|
2008-06-11 04:34:03 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --database DATABASE
|
|
|
|
|
|
|
|
|
|
Specifies the database onto which to open a shell. Defaults to ``default``.
|
2009-12-22 15:18:51 +00:00
|
|
|
|
|
2020-04-14 07:56:40 +00:00
|
|
|
|
.. django-admin-option:: -- ARGUMENTS
|
|
|
|
|
|
|
|
|
|
Any arguments following a ``--`` divider will be passed on to the underlying
|
|
|
|
|
command-line client. For example, with PostgreSQL you can use the ``psql``
|
|
|
|
|
command's ``-c`` flag to execute a raw SQL query directly:
|
|
|
|
|
|
|
|
|
|
.. console::
|
|
|
|
|
|
|
|
|
|
$ django-admin dbshell -- -c 'select current_user'
|
|
|
|
|
current_user
|
|
|
|
|
--------------
|
|
|
|
|
postgres
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
|
|
On MySQL/MariaDB, you can do this with the ``mysql`` command's ``-e`` flag:
|
|
|
|
|
|
|
|
|
|
.. console::
|
|
|
|
|
|
|
|
|
|
$ django-admin dbshell -- -e "select user()"
|
|
|
|
|
+----------------------+
|
|
|
|
|
| user() |
|
|
|
|
|
+----------------------+
|
|
|
|
|
| djangonaut@localhost |
|
|
|
|
|
+----------------------+
|
|
|
|
|
|
2019-10-31 03:57:31 +00:00
|
|
|
|
.. note::
|
|
|
|
|
|
2020-01-13 11:39:14 +00:00
|
|
|
|
Be aware that not all options set in the :setting:`OPTIONS` part of your
|
2019-10-31 03:57:31 +00:00
|
|
|
|
database configuration in :setting:`DATABASES` are passed to the
|
|
|
|
|
command-line client, e.g. ``'isolation_level'``.
|
|
|
|
|
|
2016-01-24 21:26:11 +00:00
|
|
|
|
``diffsettings``
|
|
|
|
|
----------------
|
2005-08-10 20:24:51 +00:00
|
|
|
|
|
2008-08-23 22:25:40 +00:00
|
|
|
|
.. django-admin:: diffsettings
|
|
|
|
|
|
2006-05-02 01:31:56 +00:00
|
|
|
|
Displays differences between the current settings file and Django's default
|
2016-11-05 11:31:37 +00:00
|
|
|
|
settings (or another settings file specified by :option:`--default`).
|
2005-08-10 20:24:51 +00:00
|
|
|
|
|
2006-05-02 01:31:56 +00:00
|
|
|
|
Settings that don't appear in the defaults are followed by ``"###"``. For
|
2011-05-29 17:41:04 +00:00
|
|
|
|
example, the default settings don't define :setting:`ROOT_URLCONF`, so
|
|
|
|
|
:setting:`ROOT_URLCONF` is followed by ``"###"`` in the output of
|
|
|
|
|
``diffsettings``.
|
2005-08-10 20:24:51 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --all
|
2013-03-17 19:48:30 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Displays all settings, even if they have Django's default value. Such settings
|
|
|
|
|
are prefixed by ``"###"``.
|
|
|
|
|
|
2016-11-05 11:31:37 +00:00
|
|
|
|
.. django-admin-option:: --default MODULE
|
|
|
|
|
|
|
|
|
|
The settings module to compare the current settings against. Leave empty to
|
|
|
|
|
compare against Django's default settings.
|
|
|
|
|
|
2017-03-08 08:54:17 +00:00
|
|
|
|
.. django-admin-option:: --output {hash,unified}
|
|
|
|
|
|
|
|
|
|
Specifies the output format. Available values are ``hash`` and ``unified``.
|
|
|
|
|
``hash`` is the default mode that displays the output that's described above.
|
|
|
|
|
``unified`` displays the output similar to ``diff -u``. Default settings are
|
|
|
|
|
prefixed with a minus sign, followed by the changed setting prefixed with a
|
|
|
|
|
plus sign.
|
|
|
|
|
|
2016-01-24 21:26:11 +00:00
|
|
|
|
``dumpdata``
|
|
|
|
|
------------
|
2008-08-23 22:25:40 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin:: dumpdata [app_label[.ModelName] [app_label[.ModelName] ...]]
|
2007-03-01 13:11:08 +00:00
|
|
|
|
|
2007-09-09 21:57:59 +00:00
|
|
|
|
Outputs to standard output all data in the database associated with the named
|
2007-03-01 13:11:08 +00:00
|
|
|
|
application(s).
|
|
|
|
|
|
|
|
|
|
If no application name is provided, all installed applications will be dumped.
|
|
|
|
|
|
2013-11-18 18:25:28 +00:00
|
|
|
|
The output of ``dumpdata`` can be used as input for :djadmin:`loaddata`.
|
2007-03-01 13:11:08 +00:00
|
|
|
|
|
2007-12-17 11:11:34 +00:00
|
|
|
|
Note that ``dumpdata`` uses the default manager on the model for selecting the
|
2008-08-23 22:25:40 +00:00
|
|
|
|
records to dump. If you're using a :ref:`custom manager <custom-managers>` as
|
|
|
|
|
the default manager and it filters some of the available records, not all of the
|
|
|
|
|
objects will be dumped.
|
2007-12-17 09:09:08 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --all, -a
|
2010-08-30 11:58:26 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Uses Django's base manager, dumping records which might otherwise be filtered
|
|
|
|
|
or modified by a custom manager.
|
2007-09-09 21:57:59 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --format FORMAT
|
2007-09-09 21:57:59 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Specifies the serialization format of the output. Defaults to JSON. Supported
|
|
|
|
|
formats are listed in :ref:`serialization-formats`.
|
2007-09-09 21:57:59 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --indent INDENT
|
2007-09-09 21:57:59 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Specifies the number of indentation spaces to use in the output. Defaults to
|
|
|
|
|
``None`` which displays all data on single line.
|
|
|
|
|
|
|
|
|
|
.. django-admin-option:: --exclude EXCLUDE, -e EXCLUDE
|
|
|
|
|
|
|
|
|
|
Prevents specific applications or models (specified in the form of
|
2021-03-22 07:43:56 +00:00
|
|
|
|
``app_label.ModelName``) from being dumped. If you specify a model name, then
|
|
|
|
|
only that model will be excluded, rather than the entire application. You can
|
|
|
|
|
also mix application names and model names.
|
2009-02-28 05:35:22 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
If you want to exclude multiple applications, pass ``--exclude`` more than
|
|
|
|
|
once::
|
|
|
|
|
|
|
|
|
|
django-admin dumpdata --exclude=auth --exclude=contenttypes
|
|
|
|
|
|
|
|
|
|
.. django-admin-option:: --database DATABASE
|
|
|
|
|
|
|
|
|
|
Specifies the database from which data will be dumped. Defaults to ``default``.
|
2009-12-22 15:18:51 +00:00
|
|
|
|
|
2012-08-01 01:49:01 +00:00
|
|
|
|
.. django-admin-option:: --natural-foreign
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Uses the ``natural_key()`` model method to serialize any foreign key and
|
|
|
|
|
many-to-many relationship to objects of the type that defines the method. If
|
|
|
|
|
you're dumping ``contrib.auth`` ``Permission`` objects or
|
|
|
|
|
``contrib.contenttypes`` ``ContentType`` objects, you should probably use this
|
|
|
|
|
flag. See the :ref:`natural keys <topics-serialization-natural-keys>`
|
|
|
|
|
documentation for more details on this and the next option.
|
2012-08-01 01:49:01 +00:00
|
|
|
|
|
|
|
|
|
.. django-admin-option:: --natural-primary
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Omits the primary key in the serialized data of this object since it can be
|
|
|
|
|
calculated during deserialization.
|
|
|
|
|
|
|
|
|
|
.. django-admin-option:: --pks PRIMARY_KEYS
|
2012-08-01 01:49:01 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Outputs only the objects specified by a comma separated list of primary keys.
|
|
|
|
|
This is only available when dumping one model. By default, all the records of
|
|
|
|
|
the model are output.
|
2013-05-19 10:39:14 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --output OUTPUT, -o OUTPUT
|
2013-05-19 10:39:14 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Specifies a file to write the serialized data to. By default, the data goes to
|
|
|
|
|
standard output.
|
2014-03-23 05:10:12 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
When this option is set and ``--verbosity`` is greater than 0 (the default), a
|
2015-07-21 21:24:32 +00:00
|
|
|
|
progress bar is shown in the terminal.
|
|
|
|
|
|
2021-01-12 14:47:58 +00:00
|
|
|
|
Fixtures compression
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
|
|
The output file can be compressed with one of the ``bz2``, ``gz``, ``lzma``, or
|
|
|
|
|
``xz`` formats by ending the filename with the corresponding extension.
|
|
|
|
|
For example, to output the data as a compressed JSON file::
|
|
|
|
|
|
|
|
|
|
django-admin dumpdata -o mydata.json.gz
|
|
|
|
|
|
2016-01-24 21:26:11 +00:00
|
|
|
|
``flush``
|
|
|
|
|
---------
|
2007-03-01 13:11:08 +00:00
|
|
|
|
|
2009-11-12 13:58:32 +00:00
|
|
|
|
.. django-admin:: flush
|
2008-08-23 22:25:40 +00:00
|
|
|
|
|
2015-04-27 17:17:52 +00:00
|
|
|
|
Removes all data from the database and re-executes any post-synchronization
|
|
|
|
|
handlers. The table of which migrations have been applied is not cleared.
|
|
|
|
|
|
2022-03-11 08:11:42 +00:00
|
|
|
|
If you would rather start from an empty database and rerun all migrations, you
|
2015-04-27 17:17:52 +00:00
|
|
|
|
should drop and recreate the database and then run :djadmin:`migrate` instead.
|
2007-03-01 13:11:08 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --noinput, --no-input
|
|
|
|
|
|
|
|
|
|
Suppresses all user prompts.
|
|
|
|
|
|
|
|
|
|
.. django-admin-option:: --database DATABASE
|
|
|
|
|
|
|
|
|
|
Specifies the database to flush. Defaults to ``default``.
|
2009-12-22 15:18:51 +00:00
|
|
|
|
|
2016-01-24 21:26:11 +00:00
|
|
|
|
``inspectdb``
|
|
|
|
|
-------------
|
2006-05-02 01:31:56 +00:00
|
|
|
|
|
2015-11-01 23:53:43 +00:00
|
|
|
|
.. django-admin:: inspectdb [table [table ...]]
|
2009-11-12 13:58:32 +00:00
|
|
|
|
|
2015-06-30 18:23:29 +00:00
|
|
|
|
Introspects the database tables in the database pointed-to by the
|
2011-05-29 17:41:04 +00:00
|
|
|
|
:setting:`NAME` setting and outputs a Django model module (a ``models.py``
|
2018-01-09 16:04:56 +00:00
|
|
|
|
file) to standard output.
|
|
|
|
|
|
|
|
|
|
You may choose what tables or views to inspect by passing their names as
|
|
|
|
|
arguments. If no arguments are provided, models are created for views only if
|
2018-09-12 20:53:24 +00:00
|
|
|
|
the :option:`--include-views` option is used. Models for partition tables are
|
|
|
|
|
created on PostgreSQL if the :option:`--include-partitions` option is used.
|
2005-08-10 20:24:51 +00:00
|
|
|
|
|
|
|
|
|
Use this if you have a legacy database with which you'd like to use Django.
|
2015-06-30 18:23:29 +00:00
|
|
|
|
The script will inspect the database and create a model for each table within
|
|
|
|
|
it.
|
2005-08-10 20:24:51 +00:00
|
|
|
|
|
2006-02-04 20:08:30 +00:00
|
|
|
|
As you might expect, the created models will have an attribute for every field
|
2015-06-30 18:23:29 +00:00
|
|
|
|
in the table. Note that ``inspectdb`` has a few special cases in its field-name
|
|
|
|
|
output:
|
2006-02-04 20:08:30 +00:00
|
|
|
|
|
2011-10-14 00:12:01 +00:00
|
|
|
|
* If ``inspectdb`` cannot map a column's type to a model field type, it'll
|
|
|
|
|
use ``TextField`` and will insert the Python comment
|
|
|
|
|
``'This field type is a guess.'`` next to the field in the generated
|
2017-09-09 12:39:09 +00:00
|
|
|
|
model. The recognized fields may depend on apps listed in
|
|
|
|
|
:setting:`INSTALLED_APPS`. For example, :mod:`django.contrib.postgres` adds
|
|
|
|
|
recognition for several PostgreSQL-specific field types.
|
2006-02-04 20:08:30 +00:00
|
|
|
|
|
2011-10-14 00:12:01 +00:00
|
|
|
|
* If the database column name is a Python reserved word (such as
|
|
|
|
|
``'pass'``, ``'class'`` or ``'for'``), ``inspectdb`` will append
|
|
|
|
|
``'_field'`` to the attribute name. For example, if a table has a column
|
|
|
|
|
``'for'``, the generated model will have a field ``'for_field'``, with
|
|
|
|
|
the ``db_column`` attribute set to ``'for'``. ``inspectdb`` will insert
|
|
|
|
|
the Python comment
|
|
|
|
|
``'Field renamed because it was a Python reserved word.'`` next to the
|
|
|
|
|
field.
|
2006-02-04 20:08:30 +00:00
|
|
|
|
|
2005-08-10 20:24:51 +00:00
|
|
|
|
This feature is meant as a shortcut, not as definitive model generation. After
|
|
|
|
|
you run it, you'll want to look over the generated models yourself to make
|
2006-02-18 21:26:28 +00:00
|
|
|
|
customizations. In particular, you'll need to rearrange models' order, so that
|
|
|
|
|
models that refer to other models are ordered properly.
|
2005-08-10 20:24:51 +00:00
|
|
|
|
|
2014-08-19 10:14:14 +00:00
|
|
|
|
Django doesn't create database defaults when a
|
|
|
|
|
:attr:`~django.db.models.Field.default` is specified on a model field.
|
|
|
|
|
Similarly, database defaults aren't translated to model field defaults or
|
|
|
|
|
detected in any fashion by ``inspectdb``.
|
|
|
|
|
|
2014-03-25 14:17:23 +00:00
|
|
|
|
By default, ``inspectdb`` creates unmanaged models. That is, ``managed = False``
|
|
|
|
|
in the model's ``Meta`` class tells Django not to manage each table's creation,
|
|
|
|
|
modification, and deletion. If you do want to allow Django to manage the
|
|
|
|
|
table's lifecycle, you'll need to change the
|
2019-06-17 14:54:55 +00:00
|
|
|
|
:attr:`~django.db.models.Options.managed` option to ``True`` (or remove
|
2014-03-25 14:17:23 +00:00
|
|
|
|
it because ``True`` is its default value).
|
2013-02-03 00:08:45 +00:00
|
|
|
|
|
2018-09-12 00:36:15 +00:00
|
|
|
|
Database-specific notes
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
2018-11-26 18:45:05 +00:00
|
|
|
|
Oracle
|
|
|
|
|
^^^^^^
|
|
|
|
|
|
|
|
|
|
* Models are created for materialized views if :option:`--include-views` is
|
|
|
|
|
used.
|
|
|
|
|
|
2018-09-12 00:36:15 +00:00
|
|
|
|
PostgreSQL
|
|
|
|
|
^^^^^^^^^^
|
|
|
|
|
|
|
|
|
|
* Models are created for foreign tables.
|
2018-09-12 00:23:35 +00:00
|
|
|
|
* Models are created for materialized views if
|
|
|
|
|
:option:`--include-views` is used.
|
2018-09-12 20:53:24 +00:00
|
|
|
|
* Models are created for partition tables if
|
|
|
|
|
:option:`--include-partitions` is used.
|
2018-09-12 00:36:15 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --database DATABASE
|
2009-12-22 15:18:51 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Specifies the database to introspect. Defaults to ``default``.
|
2007-03-01 13:11:08 +00:00
|
|
|
|
|
2018-09-12 20:53:24 +00:00
|
|
|
|
.. django-admin-option:: --include-partitions
|
|
|
|
|
|
|
|
|
|
If this option is provided, models are also created for partitions.
|
|
|
|
|
|
|
|
|
|
Only support for PostgreSQL is implemented.
|
|
|
|
|
|
2018-01-09 16:04:56 +00:00
|
|
|
|
.. django-admin-option:: --include-views
|
|
|
|
|
|
|
|
|
|
If this option is provided, models are also created for database views.
|
|
|
|
|
|
2016-01-24 21:26:11 +00:00
|
|
|
|
``loaddata``
|
|
|
|
|
------------
|
2016-01-12 01:59:34 +00:00
|
|
|
|
|
|
|
|
|
.. django-admin:: loaddata fixture [fixture ...]
|
2009-11-12 13:58:32 +00:00
|
|
|
|
|
2007-03-01 13:11:08 +00:00
|
|
|
|
Searches for and loads the contents of the named fixture into the database.
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --database DATABASE
|
|
|
|
|
|
|
|
|
|
Specifies the database into which the data will be loaded. Defaults to
|
|
|
|
|
``default``.
|
2009-12-22 15:18:51 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --ignorenonexistent, -i
|
2013-01-01 13:12:42 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Ignores fields and models that may have been removed since the fixture was
|
|
|
|
|
originally generated.
|
2014-02-09 12:22:29 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --app APP_LABEL
|
2014-12-19 04:52:01 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Specifies a single app to look for fixtures in rather than looking in all apps.
|
2014-12-19 04:52:01 +00:00
|
|
|
|
|
2017-03-26 19:29:05 +00:00
|
|
|
|
.. django-admin-option:: --format FORMAT
|
|
|
|
|
|
|
|
|
|
Specifies the :ref:`serialization format <serialization-formats>` (e.g.,
|
|
|
|
|
``json`` or ``xml``) for fixtures :ref:`read from stdin
|
|
|
|
|
<loading-fixtures-stdin>`.
|
|
|
|
|
|
2016-05-17 06:52:01 +00:00
|
|
|
|
.. django-admin-option:: --exclude EXCLUDE, -e EXCLUDE
|
|
|
|
|
|
|
|
|
|
Excludes loading the fixtures from the given applications and/or models (in the
|
|
|
|
|
form of ``app_label`` or ``app_label.ModelName``). Use the option multiple
|
|
|
|
|
times to exclude more than one app or model.
|
|
|
|
|
|
2008-11-24 20:42:09 +00:00
|
|
|
|
What's a "fixture"?
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
2007-09-09 21:57:59 +00:00
|
|
|
|
A *fixture* is a collection of files that contain the serialized contents of
|
|
|
|
|
the database. Each fixture has a unique name, and the files that comprise the
|
|
|
|
|
fixture can be distributed over multiple directories, in multiple applications.
|
2007-03-01 13:11:08 +00:00
|
|
|
|
|
|
|
|
|
Django will search in three locations for fixtures:
|
|
|
|
|
|
2011-10-14 00:12:01 +00:00
|
|
|
|
1. In the ``fixtures`` directory of every installed application
|
|
|
|
|
2. In any directory named in the :setting:`FIXTURE_DIRS` setting
|
|
|
|
|
3. In the literal path named by the fixture
|
2007-03-01 13:11:08 +00:00
|
|
|
|
|
|
|
|
|
Django will load any and all fixtures it finds in these locations that match
|
2007-04-09 01:44:26 +00:00
|
|
|
|
the provided fixture names.
|
2007-03-01 13:11:08 +00:00
|
|
|
|
|
2007-04-09 01:44:26 +00:00
|
|
|
|
If the named fixture has a file extension, only fixtures of that type
|
2007-03-01 13:11:08 +00:00
|
|
|
|
will be loaded. For example::
|
|
|
|
|
|
2014-07-26 11:21:52 +00:00
|
|
|
|
django-admin loaddata mydata.json
|
2007-04-09 01:44:26 +00:00
|
|
|
|
|
|
|
|
|
would only load JSON fixtures called ``mydata``. The fixture extension
|
2008-11-24 20:42:09 +00:00
|
|
|
|
must correspond to the registered name of a
|
|
|
|
|
:ref:`serializer <serialization-formats>` (e.g., ``json`` or ``xml``).
|
2007-03-01 13:11:08 +00:00
|
|
|
|
|
2008-11-24 20:42:09 +00:00
|
|
|
|
If you omit the extensions, Django will search all available fixture types
|
2007-03-01 13:11:08 +00:00
|
|
|
|
for a matching fixture. For example::
|
|
|
|
|
|
2014-07-26 11:21:52 +00:00
|
|
|
|
django-admin loaddata mydata
|
2007-04-09 01:44:26 +00:00
|
|
|
|
|
2007-03-01 13:11:08 +00:00
|
|
|
|
would look for any fixture of any fixture type called ``mydata``. If a fixture
|
|
|
|
|
directory contained ``mydata.json``, that fixture would be loaded
|
2008-11-24 20:42:09 +00:00
|
|
|
|
as a JSON fixture.
|
2007-03-01 13:11:08 +00:00
|
|
|
|
|
2007-04-09 01:44:26 +00:00
|
|
|
|
The fixtures that are named can include directory components. These
|
2007-03-16 15:02:21 +00:00
|
|
|
|
directories will be included in the search path. For example::
|
2007-03-01 13:11:08 +00:00
|
|
|
|
|
2014-07-26 11:21:52 +00:00
|
|
|
|
django-admin loaddata foo/bar/mydata.json
|
2007-04-09 01:44:26 +00:00
|
|
|
|
|
2013-12-28 08:53:02 +00:00
|
|
|
|
would search ``<app_label>/fixtures/foo/bar/mydata.json`` for each installed
|
2007-04-09 01:44:26 +00:00
|
|
|
|
application, ``<dirname>/foo/bar/mydata.json`` for each directory in
|
2011-05-29 17:41:04 +00:00
|
|
|
|
:setting:`FIXTURE_DIRS`, and the literal path ``foo/bar/mydata.json``.
|
2007-03-01 13:11:08 +00:00
|
|
|
|
|
2009-03-31 23:34:03 +00:00
|
|
|
|
When fixture files are processed, the data is saved to the database as is.
|
2013-05-11 23:34:02 +00:00
|
|
|
|
Model defined :meth:`~django.db.models.Model.save` methods are not called, and
|
|
|
|
|
any :data:`~django.db.models.signals.pre_save` or
|
|
|
|
|
:data:`~django.db.models.signals.post_save` signals will be called with
|
|
|
|
|
``raw=True`` since the instance only contains attributes that are local to the
|
|
|
|
|
model. You may, for example, want to disable handlers that access
|
|
|
|
|
related fields that aren't present during fixture loading and would otherwise
|
|
|
|
|
raise an exception::
|
|
|
|
|
|
|
|
|
|
from django.db.models.signals import post_save
|
|
|
|
|
from .models import MyModel
|
|
|
|
|
|
|
|
|
|
def my_handler(**kwargs):
|
|
|
|
|
# disable the handler during fixture loading
|
|
|
|
|
if kwargs['raw']:
|
|
|
|
|
return
|
|
|
|
|
...
|
|
|
|
|
|
|
|
|
|
post_save.connect(my_handler, sender=MyModel)
|
|
|
|
|
|
2019-06-17 14:54:55 +00:00
|
|
|
|
You could also write a decorator to encapsulate this logic::
|
2013-05-11 23:34:02 +00:00
|
|
|
|
|
|
|
|
|
from functools import wraps
|
|
|
|
|
|
|
|
|
|
def disable_for_loaddata(signal_handler):
|
|
|
|
|
"""
|
|
|
|
|
Decorator that turns off signal handlers when loading fixture data.
|
|
|
|
|
"""
|
|
|
|
|
@wraps(signal_handler)
|
|
|
|
|
def wrapper(*args, **kwargs):
|
|
|
|
|
if kwargs['raw']:
|
|
|
|
|
return
|
|
|
|
|
signal_handler(*args, **kwargs)
|
|
|
|
|
return wrapper
|
|
|
|
|
|
|
|
|
|
@disable_for_loaddata
|
|
|
|
|
def my_handler(**kwargs):
|
|
|
|
|
...
|
|
|
|
|
|
|
|
|
|
Just be aware that this logic will disable the signals whenever fixtures are
|
|
|
|
|
deserialized, not just during ``loaddata``.
|
2009-03-31 23:34:03 +00:00
|
|
|
|
|
2007-03-01 13:11:08 +00:00
|
|
|
|
Note that the order in which fixture files are processed is undefined. However,
|
|
|
|
|
all fixture data is installed as a single transaction, so data in
|
|
|
|
|
one fixture can reference data in another fixture. If the database backend
|
|
|
|
|
supports row-level constraints, these constraints will be checked at the
|
|
|
|
|
end of the transaction.
|
|
|
|
|
|
2013-11-18 18:25:28 +00:00
|
|
|
|
The :djadmin:`dumpdata` command can be used to generate input for ``loaddata``.
|
2007-04-09 12:11:19 +00:00
|
|
|
|
|
2008-11-24 20:42:09 +00:00
|
|
|
|
Compressed fixtures
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
2020-05-15 07:40:42 +00:00
|
|
|
|
Fixtures may be compressed in ``zip``, ``gz``, ``bz2``, ``lzma``, or ``xz``
|
|
|
|
|
format. For example::
|
2008-11-24 20:42:09 +00:00
|
|
|
|
|
2014-07-26 11:21:52 +00:00
|
|
|
|
django-admin loaddata mydata.json
|
2008-11-24 20:42:09 +00:00
|
|
|
|
|
2020-05-15 07:40:42 +00:00
|
|
|
|
would look for any of ``mydata.json``, ``mydata.json.zip``, ``mydata.json.gz``,
|
|
|
|
|
``mydata.json.bz2``, ``mydata.json.lzma``, or ``mydata.json.xz``. The first
|
|
|
|
|
file contained within a compressed archive is used.
|
2008-11-24 20:42:09 +00:00
|
|
|
|
|
|
|
|
|
Note that if two fixtures with the same name but different
|
|
|
|
|
fixture type are discovered (for example, if ``mydata.json`` and
|
|
|
|
|
``mydata.xml.gz`` were found in the same fixture directory), fixture
|
|
|
|
|
installation will be aborted, and any data installed in the call to
|
|
|
|
|
``loaddata`` will be removed from the database.
|
|
|
|
|
|
2012-02-19 07:39:05 +00:00
|
|
|
|
.. admonition:: MySQL with MyISAM and fixtures
|
|
|
|
|
|
|
|
|
|
The MyISAM storage engine of MySQL doesn't support transactions or
|
2012-03-02 17:16:52 +00:00
|
|
|
|
constraints, so if you use MyISAM, you won't get validation of fixture
|
|
|
|
|
data, or a rollback if multiple transaction files are found.
|
2007-04-09 01:44:26 +00:00
|
|
|
|
|
2009-12-22 15:18:51 +00:00
|
|
|
|
Database-specific fixtures
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
2011-04-20 16:28:02 +00:00
|
|
|
|
If you're in a multi-database setup, you might have fixture data that
|
2009-12-22 15:18:51 +00:00
|
|
|
|
you want to load onto one database, but not onto another. In this
|
2015-05-07 23:41:42 +00:00
|
|
|
|
situation, you can add a database identifier into the names of your fixtures.
|
2011-04-20 16:28:02 +00:00
|
|
|
|
|
2021-11-22 10:47:38 +00:00
|
|
|
|
For example, if your :setting:`DATABASES` setting has a 'users' database
|
|
|
|
|
defined, name the fixture ``mydata.users.json`` or
|
|
|
|
|
``mydata.users.json.gz`` and the fixture will only be loaded when you
|
|
|
|
|
specify you want to load data into the ``users`` database.
|
2009-12-22 15:18:51 +00:00
|
|
|
|
|
2017-03-26 19:29:05 +00:00
|
|
|
|
.. _loading-fixtures-stdin:
|
|
|
|
|
|
|
|
|
|
Loading fixtures from ``stdin``
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
|
|
You can use a dash as the fixture name to load input from ``sys.stdin``. For
|
|
|
|
|
example::
|
|
|
|
|
|
|
|
|
|
django-admin loaddata --format=json -
|
|
|
|
|
|
|
|
|
|
When reading from ``stdin``, the :option:`--format <loaddata --format>` option
|
|
|
|
|
is required to specify the :ref:`serialization format <serialization-formats>`
|
|
|
|
|
of the input (e.g., ``json`` or ``xml``).
|
|
|
|
|
|
|
|
|
|
Loading from ``stdin`` is useful with standard input and output redirections.
|
|
|
|
|
For example::
|
|
|
|
|
|
|
|
|
|
django-admin dumpdata --format=json --database=test app_label.ModelName | django-admin loaddata --format=json --database=prod -
|
|
|
|
|
|
2016-01-24 21:26:11 +00:00
|
|
|
|
``makemessages``
|
|
|
|
|
----------------
|
2008-07-06 06:39:44 +00:00
|
|
|
|
|
2009-11-12 13:58:32 +00:00
|
|
|
|
.. django-admin:: makemessages
|
|
|
|
|
|
2008-07-06 06:39:44 +00:00
|
|
|
|
Runs over the entire source tree of the current directory and pulls out all
|
|
|
|
|
strings marked for translation. It creates (or updates) a message file in the
|
2013-11-02 19:13:36 +00:00
|
|
|
|
conf/locale (in the Django tree) or locale (for project and application)
|
2008-07-06 06:39:44 +00:00
|
|
|
|
directory. After making changes to the messages files you need to compile them
|
2013-11-18 18:25:28 +00:00
|
|
|
|
with :djadmin:`compilemessages` for use with the builtin gettext support. See
|
|
|
|
|
the :ref:`i18n documentation <how-to-create-language-files>` for details.
|
2008-07-06 06:39:44 +00:00
|
|
|
|
|
2016-09-29 14:13:10 +00:00
|
|
|
|
This command doesn't require configured settings. However, when settings aren't
|
|
|
|
|
configured, the command can't ignore the :setting:`MEDIA_ROOT` and
|
2018-10-03 03:45:19 +00:00
|
|
|
|
:setting:`STATIC_ROOT` directories or include :setting:`LOCALE_PATHS`.
|
2016-09-29 14:13:10 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --all, -a
|
2008-07-06 06:39:44 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Updates the message files for all available languages.
|
2008-07-06 06:39:44 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --extension EXTENSIONS, -e EXTENSIONS
|
2008-07-06 06:39:44 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Specifies a list of file extensions to examine (default: ``html``, ``txt``,
|
|
|
|
|
``py`` or ``js`` if :option:`--domain` is ``js``).
|
2008-08-08 16:41:55 +00:00
|
|
|
|
|
|
|
|
|
Example usage::
|
|
|
|
|
|
2014-07-26 11:21:52 +00:00
|
|
|
|
django-admin makemessages --locale=de --extension xhtml
|
2008-08-08 16:41:55 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Separate multiple extensions with commas or use ``-e`` or ``--extension``
|
|
|
|
|
multiple times::
|
2008-08-08 16:41:55 +00:00
|
|
|
|
|
2014-07-26 11:21:52 +00:00
|
|
|
|
django-admin makemessages --locale=de --extension=html,txt --extension xml
|
2008-08-08 16:41:55 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --locale LOCALE, -l LOCALE
|
|
|
|
|
|
|
|
|
|
Specifies the locale(s) to process.
|
|
|
|
|
|
|
|
|
|
.. django-admin-option:: --exclude EXCLUDE, -x EXCLUDE
|
2008-07-06 06:39:44 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Specifies the locale(s) to exclude from processing. If not provided, no locales
|
2014-03-24 13:03:06 +00:00
|
|
|
|
are excluded.
|
|
|
|
|
|
2008-07-06 06:39:44 +00:00
|
|
|
|
Example usage::
|
|
|
|
|
|
2014-07-26 11:21:52 +00:00
|
|
|
|
django-admin makemessages --locale=pt_BR
|
|
|
|
|
django-admin makemessages --locale=pt_BR --locale=fr
|
|
|
|
|
django-admin makemessages -l pt_BR
|
|
|
|
|
django-admin makemessages -l pt_BR -l fr
|
|
|
|
|
django-admin makemessages --exclude=pt_BR
|
|
|
|
|
django-admin makemessages --exclude=pt_BR --exclude=fr
|
|
|
|
|
django-admin makemessages -x pt_BR
|
|
|
|
|
django-admin makemessages -x pt_BR -x fr
|
2014-03-24 13:03:06 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --domain DOMAIN, -d DOMAIN
|
2008-07-06 06:39:44 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Specifies the domain of the messages files. Supported options are:
|
2008-07-06 06:39:44 +00:00
|
|
|
|
|
2011-10-14 00:12:01 +00:00
|
|
|
|
* ``django`` for all ``*.py``, ``*.html`` and ``*.txt`` files (default)
|
|
|
|
|
* ``djangojs`` for ``*.js`` files
|
2010-02-16 12:14:27 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --symlinks, -s
|
2010-02-16 12:14:27 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Follows symlinks to directories when looking for new translation strings.
|
2010-02-16 12:14:27 +00:00
|
|
|
|
|
|
|
|
|
Example usage::
|
|
|
|
|
|
2014-07-26 11:21:52 +00:00
|
|
|
|
django-admin makemessages --locale=de --symlinks
|
2008-07-06 06:39:44 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --ignore PATTERN, -i PATTERN
|
2010-02-16 12:15:04 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Ignores files or directories matching the given :mod:`glob`-style pattern. Use
|
|
|
|
|
multiple times to ignore more.
|
2010-02-16 12:15:04 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
These patterns are used by default: ``'CVS'``, ``'.*'``, ``'*~'``, ``'*.pyc'``.
|
2010-02-16 12:15:04 +00:00
|
|
|
|
|
|
|
|
|
Example usage::
|
|
|
|
|
|
2014-07-26 11:21:52 +00:00
|
|
|
|
django-admin makemessages --locale=en_US --ignore=apps/* --ignore=secret/*.html
|
2010-02-16 12:15:04 +00:00
|
|
|
|
|
|
|
|
|
.. django-admin-option:: --no-default-ignore
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Disables the default values of ``--ignore``.
|
2010-02-16 12:15:04 +00:00
|
|
|
|
|
2010-11-04 12:08:37 +00:00
|
|
|
|
.. django-admin-option:: --no-wrap
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Disables breaking long message lines into several lines in language files.
|
2010-11-04 12:08:37 +00:00
|
|
|
|
|
2011-11-11 13:07:14 +00:00
|
|
|
|
.. django-admin-option:: --no-location
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Suppresses writing '``#: filename:line``’ comment lines in language files.
|
|
|
|
|
Using this option makes it harder for technically skilled translators to
|
|
|
|
|
understand each message's context.
|
2011-11-11 13:07:14 +00:00
|
|
|
|
|
2017-04-07 17:46:45 +00:00
|
|
|
|
.. django-admin-option:: --add-location [{full,file,never}]
|
|
|
|
|
|
|
|
|
|
Controls ``#: filename:line`` comment lines in language files. If the option
|
|
|
|
|
is:
|
|
|
|
|
|
|
|
|
|
* ``full`` (the default if not given): the lines include both file name and
|
|
|
|
|
line number.
|
|
|
|
|
* ``file``: the line number is omitted.
|
|
|
|
|
* ``never``: the lines are suppressed (same as :option:`--no-location`).
|
|
|
|
|
|
|
|
|
|
Requires ``gettext`` 0.19 or newer.
|
|
|
|
|
|
2013-01-16 18:36:22 +00:00
|
|
|
|
.. django-admin-option:: --keep-pot
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Prevents deleting the temporary ``.pot`` files generated before creating the
|
|
|
|
|
``.po`` file. This is useful for debugging errors which may prevent the final
|
|
|
|
|
language files from being created.
|
2013-01-16 18:36:22 +00:00
|
|
|
|
|
2014-10-29 14:38:46 +00:00
|
|
|
|
.. seealso::
|
|
|
|
|
|
|
|
|
|
See :ref:`customizing-makemessages` for instructions on how to customize
|
|
|
|
|
the keywords that :djadmin:`makemessages` passes to ``xgettext``.
|
|
|
|
|
|
2016-01-24 21:26:11 +00:00
|
|
|
|
``makemigrations``
|
|
|
|
|
------------------
|
2013-07-25 13:45:38 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin:: makemigrations [app_label [app_label ...]]
|
2013-07-25 13:45:38 +00:00
|
|
|
|
|
|
|
|
|
Creates new migrations based on the changes detected to your models.
|
|
|
|
|
Migrations, their relationship with apps and more are covered in depth in
|
|
|
|
|
:doc:`the migrations documentation</topics/migrations>`.
|
|
|
|
|
|
|
|
|
|
Providing one or more app names as arguments will limit the migrations created
|
2013-08-10 19:00:12 +00:00
|
|
|
|
to the app(s) specified and any dependencies needed (the table at the other end
|
|
|
|
|
of a ``ForeignKey``, for example).
|
2013-07-25 13:45:38 +00:00
|
|
|
|
|
2017-03-31 23:10:58 +00:00
|
|
|
|
To add migrations to an app that doesn't have a ``migrations`` directory, run
|
|
|
|
|
``makemigrations`` with the app's ``app_label``.
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --noinput, --no-input
|
|
|
|
|
|
|
|
|
|
Suppresses all user prompts. If a suppressed prompt cannot be resolved
|
|
|
|
|
automatically, the command will exit with error code 3.
|
|
|
|
|
|
2013-07-25 13:45:38 +00:00
|
|
|
|
.. django-admin-option:: --empty
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Outputs an empty migration for the specified apps, for manual editing. This is
|
|
|
|
|
for advanced users and should not be used unless you are familiar with the
|
|
|
|
|
migration format, migration operations, and the dependencies between your
|
|
|
|
|
migrations.
|
2013-07-25 13:45:38 +00:00
|
|
|
|
|
2014-05-24 17:31:34 +00:00
|
|
|
|
.. django-admin-option:: --dry-run
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Shows what migrations would be made without actually writing any migrations
|
|
|
|
|
files to disk. Using this option along with ``--verbosity 3`` will also show
|
|
|
|
|
the complete migrations files that would be written.
|
2014-05-24 17:31:34 +00:00
|
|
|
|
|
|
|
|
|
.. django-admin-option:: --merge
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Enables fixing of migration conflicts.
|
2014-05-24 17:31:34 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --name NAME, -n NAME
|
2014-08-19 13:24:31 +00:00
|
|
|
|
|
2018-10-19 06:56:33 +00:00
|
|
|
|
Allows naming the generated migration(s) instead of using a generated name. The
|
|
|
|
|
name must be a valid Python :ref:`identifier <python:identifiers>`.
|
2014-08-19 13:24:31 +00:00
|
|
|
|
|
2018-12-19 11:41:31 +00:00
|
|
|
|
.. django-admin-option:: --no-header
|
|
|
|
|
|
|
|
|
|
Generate migration files without Django version and timestamp header.
|
|
|
|
|
|
2015-10-21 00:39:48 +00:00
|
|
|
|
.. django-admin-option:: --check
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Makes ``makemigrations`` exit with a non-zero status when model changes without
|
|
|
|
|
migrations are detected.
|
2015-10-21 00:39:48 +00:00
|
|
|
|
|
2021-08-06 13:59:53 +00:00
|
|
|
|
.. django-admin-option:: --scriptable
|
|
|
|
|
|
|
|
|
|
.. versionadded:: 4.1
|
|
|
|
|
|
|
|
|
|
Diverts log output and input prompts to ``stderr``, writing only paths of
|
|
|
|
|
generated migration files to ``stdout``.
|
|
|
|
|
|
2022-06-14 18:12:20 +00:00
|
|
|
|
.. django-admin-option:: --update
|
|
|
|
|
|
|
|
|
|
.. versionadded:: 4.2
|
|
|
|
|
|
|
|
|
|
Merges model changes into the latest migration and optimize the resulting
|
|
|
|
|
operations.
|
|
|
|
|
|
2016-01-24 21:26:11 +00:00
|
|
|
|
``migrate``
|
|
|
|
|
-----------
|
2013-07-25 13:45:38 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin:: migrate [app_label] [migration_name]
|
2013-07-25 13:45:38 +00:00
|
|
|
|
|
2013-08-10 19:00:12 +00:00
|
|
|
|
Synchronizes the database state with the current set of models and migrations.
|
2013-07-25 13:45:38 +00:00
|
|
|
|
Migrations, their relationship with apps and more are covered in depth in
|
|
|
|
|
:doc:`the migrations documentation</topics/migrations>`.
|
|
|
|
|
|
2013-08-10 19:00:12 +00:00
|
|
|
|
The behavior of this command changes depending on the arguments provided:
|
2013-07-25 13:45:38 +00:00
|
|
|
|
|
2015-02-09 15:28:42 +00:00
|
|
|
|
* No arguments: All apps have all of their migrations run.
|
2013-12-28 08:53:02 +00:00
|
|
|
|
* ``<app_label>``: The specified app has its migrations run, up to the most
|
2013-07-25 13:45:38 +00:00
|
|
|
|
recent migration. This may involve running other apps' migrations too, due
|
|
|
|
|
to dependencies.
|
2014-11-17 17:13:47 +00:00
|
|
|
|
* ``<app_label> <migrationname>``: Brings the database schema to a state where
|
|
|
|
|
the named migration is applied, but no later migrations in the same app are
|
|
|
|
|
applied. This may involve unapplying migrations if you have previously
|
2019-09-27 21:31:58 +00:00
|
|
|
|
migrated past the named migration. You can use a prefix of the migration
|
|
|
|
|
name, e.g. ``0001``, as long as it's unique for the given app name. Use the
|
|
|
|
|
name ``zero`` to migrate all the way back i.e. to revert all applied
|
|
|
|
|
migrations for an app.
|
2014-07-06 07:30:05 +00:00
|
|
|
|
|
2019-09-27 16:41:49 +00:00
|
|
|
|
.. warning::
|
|
|
|
|
|
|
|
|
|
When unapplying migrations, all dependent migrations will also be
|
|
|
|
|
unapplied, regardless of ``<app_label>``. You can use ``--plan`` to check
|
|
|
|
|
which migrations will be unapplied.
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --database DATABASE
|
|
|
|
|
|
|
|
|
|
Specifies the database to migrate. Defaults to ``default``.
|
2014-08-27 12:01:30 +00:00
|
|
|
|
|
2014-07-06 07:30:05 +00:00
|
|
|
|
.. django-admin-option:: --fake
|
|
|
|
|
|
2018-01-21 19:23:22 +00:00
|
|
|
|
Marks the migrations up to the target one (following the rules above) as
|
|
|
|
|
applied, but without actually running the SQL to change your database schema.
|
2014-07-06 07:30:05 +00:00
|
|
|
|
|
|
|
|
|
This is intended for advanced users to manipulate the
|
|
|
|
|
current migration state directly if they're manually applying changes;
|
|
|
|
|
be warned that using ``--fake`` runs the risk of putting the migration state
|
|
|
|
|
table into a state where manual recovery will be needed to make migrations
|
|
|
|
|
run correctly.
|
|
|
|
|
|
2015-02-12 11:48:28 +00:00
|
|
|
|
.. django-admin-option:: --fake-initial
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Allows Django to skip an app's initial migration if all database tables with
|
|
|
|
|
the names of all models created by all
|
|
|
|
|
:class:`~django.db.migrations.operations.CreateModel` operations in that
|
2015-02-12 11:48:28 +00:00
|
|
|
|
migration already exist. This option is intended for use when first running
|
|
|
|
|
migrations against a database that preexisted the use of migrations. This
|
|
|
|
|
option does not, however, check for matching database schema beyond matching
|
|
|
|
|
table names and so is only safe to use if you are confident that your existing
|
|
|
|
|
schema matches what is recorded in your initial migration.
|
|
|
|
|
|
2018-05-19 15:38:02 +00:00
|
|
|
|
.. django-admin-option:: --plan
|
|
|
|
|
|
|
|
|
|
Shows the migration operations that will be performed for the given ``migrate``
|
|
|
|
|
command.
|
|
|
|
|
|
2015-08-31 14:33:52 +00:00
|
|
|
|
.. django-admin-option:: --run-syncdb
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Allows creating tables for apps without migrations. While this isn't
|
|
|
|
|
recommended, the migrations framework is sometimes too slow on large projects
|
|
|
|
|
with hundreds of models.
|
2015-08-31 14:33:52 +00:00
|
|
|
|
|
2016-05-01 16:04:26 +00:00
|
|
|
|
.. django-admin-option:: --noinput, --no-input
|
|
|
|
|
|
|
|
|
|
Suppresses all user prompts. An example prompt is asking about removing stale
|
|
|
|
|
content types.
|
|
|
|
|
|
2020-03-26 09:08:58 +00:00
|
|
|
|
.. django-admin-option:: --check
|
|
|
|
|
|
|
|
|
|
Makes ``migrate`` exit with a non-zero status when unapplied migrations are
|
|
|
|
|
detected.
|
|
|
|
|
|
2021-12-24 23:37:22 +00:00
|
|
|
|
.. django-admin-option:: --prune
|
|
|
|
|
|
|
|
|
|
.. versionadded:: 4.1
|
|
|
|
|
|
|
|
|
|
Deletes nonexistent migrations from the ``django_migrations`` table. This is
|
|
|
|
|
useful when migration files replaced by a squashed migration have been removed.
|
|
|
|
|
See :ref:`migration-squashing` for more details.
|
|
|
|
|
|
2022-01-01 22:33:08 +00:00
|
|
|
|
``optimizemigration``
|
|
|
|
|
---------------------
|
|
|
|
|
|
|
|
|
|
.. versionadded:: 4.1
|
|
|
|
|
|
|
|
|
|
.. django-admin:: optimizemigration app_label migration_name
|
|
|
|
|
|
|
|
|
|
Optimizes the operations for the named migration and overrides the existing
|
|
|
|
|
file. If the migration contains functions that must be manually copied, the
|
|
|
|
|
command creates a new migration file suffixed with ``_optimized`` that is meant
|
|
|
|
|
to replace the named migration.
|
|
|
|
|
|
|
|
|
|
.. django-admin-option:: --check
|
|
|
|
|
|
|
|
|
|
Makes ``optimizemigration`` exit with a non-zero status when a migration can be
|
|
|
|
|
optimized.
|
|
|
|
|
|
2016-01-24 21:26:11 +00:00
|
|
|
|
``runserver``
|
|
|
|
|
-------------
|
Fixed a whole bunch of small docs typos, errors, and ommissions.
Fixes #8358, #8396, #8724, #9043, #9128, #9247, #9267, #9267, #9375, #9409, #9414, #9416, #9446, #9454, #9464, #9503, #9518, #9533, #9657, #9658, #9683, #9733, #9771, #9835, #9836, #9837, #9897, #9906, #9912, #9945, #9986, #9992, #10055, #10084, #10091, #10145, #10245, #10257, #10309, #10358, #10359, #10424, #10426, #10508, #10531, #10551, #10635, #10637, #10656, #10658, #10690, #10699, #19528.
Thanks to all the respective authors of those tickets.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@10371 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2009-04-03 18:30:54 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin:: runserver [addrport]
|
2005-08-10 20:24:51 +00:00
|
|
|
|
|
2021-07-23 06:48:16 +00:00
|
|
|
|
Starts a lightweight development web server on the local machine. By default,
|
2010-11-26 13:33:53 +00:00
|
|
|
|
the server runs on port 8000 on the IP address ``127.0.0.1``. You can pass in an
|
2005-08-19 21:23:56 +00:00
|
|
|
|
IP address and port number explicitly.
|
2005-08-10 20:24:51 +00:00
|
|
|
|
|
|
|
|
|
If you run this script as a user with normal privileges (recommended), you
|
|
|
|
|
might not have access to start a port on a low port number. Low port numbers
|
2006-05-02 01:31:56 +00:00
|
|
|
|
are reserved for the superuser (root).
|
2005-08-10 20:24:51 +00:00
|
|
|
|
|
2012-12-26 20:47:29 +00:00
|
|
|
|
This server uses the WSGI application object specified by the
|
|
|
|
|
:setting:`WSGI_APPLICATION` setting.
|
2011-10-22 04:30:10 +00:00
|
|
|
|
|
2006-06-02 05:40:31 +00:00
|
|
|
|
DO NOT USE THIS SERVER IN A PRODUCTION SETTING. It has not gone through
|
|
|
|
|
security audits or performance tests. (And that's how it's gonna stay. We're in
|
2021-07-23 06:48:16 +00:00
|
|
|
|
the business of making web frameworks, not web servers, so improving this
|
2006-06-02 05:40:31 +00:00
|
|
|
|
server to be able to handle a production environment is outside the scope of
|
|
|
|
|
Django.)
|
2005-08-10 20:24:51 +00:00
|
|
|
|
|
|
|
|
|
The development server automatically reloads Python code for each request, as
|
|
|
|
|
needed. You don't need to restart the server for code changes to take effect.
|
2013-11-02 19:13:36 +00:00
|
|
|
|
However, some actions like adding files don't trigger a restart, so you'll
|
2013-11-02 09:28:22 +00:00
|
|
|
|
have to restart the server in these cases.
|
|
|
|
|
|
2019-01-14 01:33:47 +00:00
|
|
|
|
If you're using Linux or MacOS and install both `pywatchman`_ and the
|
|
|
|
|
`Watchman`_ service, kernel signals will be used to autoreload the server
|
|
|
|
|
(rather than polling file modification timestamps each second). This offers
|
|
|
|
|
better performance on large projects, reduced response time after code changes,
|
2019-04-29 20:51:05 +00:00
|
|
|
|
more robust change detection, and a reduction in power usage. Django supports
|
|
|
|
|
``pywatchman`` 1.2.0 and higher.
|
2013-10-14 05:33:45 +00:00
|
|
|
|
|
2019-01-14 01:33:47 +00:00
|
|
|
|
.. admonition:: Large directories with many files may cause performance issues
|
|
|
|
|
|
|
|
|
|
When using Watchman with a project that includes large non-Python
|
|
|
|
|
directories like ``node_modules``, it's advisable to ignore this directory
|
|
|
|
|
for optimal performance. See the `watchman documentation`_ for information
|
|
|
|
|
on how to do this.
|
|
|
|
|
|
2019-04-23 16:08:05 +00:00
|
|
|
|
.. admonition:: Watchman timeout
|
|
|
|
|
|
2020-04-30 10:12:05 +00:00
|
|
|
|
.. envvar:: DJANGO_WATCHMAN_TIMEOUT
|
|
|
|
|
|
2019-04-23 16:08:05 +00:00
|
|
|
|
The default timeout of ``Watchman`` client is 5 seconds. You can change it
|
2020-04-30 10:12:05 +00:00
|
|
|
|
by setting the :envvar:`DJANGO_WATCHMAN_TIMEOUT` environment variable.
|
2019-04-23 16:08:05 +00:00
|
|
|
|
|
2019-01-14 01:33:47 +00:00
|
|
|
|
.. _Watchman: https://facebook.github.io/watchman/
|
|
|
|
|
.. _pywatchman: https://pypi.org/project/pywatchman/
|
2020-04-23 16:33:32 +00:00
|
|
|
|
.. _watchman documentation: https://facebook.github.io/watchman/docs/config#ignore_dirs
|
2019-01-14 01:33:47 +00:00
|
|
|
|
|
2005-08-18 04:50:09 +00:00
|
|
|
|
When you start the server, and each time you change Python code while the
|
2015-04-25 19:05:48 +00:00
|
|
|
|
server is running, the system check framework will check your entire Django
|
|
|
|
|
project for some common errors (see the :djadmin:`check` command). If any
|
2020-12-24 15:29:54 +00:00
|
|
|
|
errors are found, they will be printed to standard output. You can use the
|
|
|
|
|
``--skip-checks`` option to skip running system checks.
|
2005-08-18 04:50:09 +00:00
|
|
|
|
|
2015-05-07 23:41:42 +00:00
|
|
|
|
You can run as many concurrent servers as you want, as long as they're on
|
2019-06-17 14:54:55 +00:00
|
|
|
|
separate ports by executing ``django-admin runserver`` more than once.
|
2005-08-10 20:24:51 +00:00
|
|
|
|
|
2010-11-26 13:33:53 +00:00
|
|
|
|
Note that the default IP address, ``127.0.0.1``, is not accessible from other
|
2005-10-17 13:05:55 +00:00
|
|
|
|
machines on your network. To make your development server viewable to other
|
|
|
|
|
machines on the network, use its own IP address (e.g. ``192.168.2.1``) or
|
2010-11-26 13:33:53 +00:00
|
|
|
|
``0.0.0.0`` or ``::`` (with IPv6 enabled).
|
|
|
|
|
|
2011-01-15 06:31:38 +00:00
|
|
|
|
You can provide an IPv6 address surrounded by brackets
|
|
|
|
|
(e.g. ``[200a::1]:8000``). This will automatically enable IPv6 support.
|
|
|
|
|
|
|
|
|
|
A hostname containing ASCII-only characters can also be used.
|
2005-10-17 13:05:55 +00:00
|
|
|
|
|
2011-01-30 17:23:30 +00:00
|
|
|
|
If the :doc:`staticfiles</ref/contrib/staticfiles>` contrib app is enabled
|
2013-07-28 01:45:25 +00:00
|
|
|
|
(default in new projects) the :djadmin:`runserver` command will be overridden
|
2012-09-28 00:25:31 +00:00
|
|
|
|
with its own :ref:`runserver<staticfiles-runserver>` command.
|
2011-01-30 17:23:30 +00:00
|
|
|
|
|
2015-11-06 16:19:41 +00:00
|
|
|
|
Logging of each request and response of the server is sent to the
|
|
|
|
|
:ref:`django-server-logger` logger.
|
|
|
|
|
|
Fixed a whole bunch of small docs typos, errors, and ommissions.
Fixes #8358, #8396, #8724, #9043, #9128, #9247, #9267, #9267, #9375, #9409, #9414, #9416, #9446, #9454, #9464, #9503, #9518, #9533, #9657, #9658, #9683, #9733, #9771, #9835, #9836, #9837, #9897, #9906, #9912, #9945, #9986, #9992, #10055, #10084, #10091, #10145, #10245, #10257, #10309, #10358, #10359, #10424, #10426, #10508, #10531, #10551, #10635, #10637, #10656, #10658, #10690, #10699, #19528.
Thanks to all the respective authors of those tickets.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@10371 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2009-04-03 18:30:54 +00:00
|
|
|
|
.. django-admin-option:: --noreload
|
2007-09-09 21:57:59 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Disables the auto-reloader. This means any Python code changes you make while
|
|
|
|
|
the server is running will *not* take effect if the particular Python modules
|
|
|
|
|
have already been loaded into memory.
|
2008-06-16 03:37:57 +00:00
|
|
|
|
|
2011-06-17 13:08:36 +00:00
|
|
|
|
.. django-admin-option:: --nothreading
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Disables use of threading in the development server. The server is
|
|
|
|
|
multithreaded by default.
|
2011-06-17 13:08:36 +00:00
|
|
|
|
|
2010-11-26 13:33:53 +00:00
|
|
|
|
.. django-admin-option:: --ipv6, -6
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Uses IPv6 for the development server. This changes the default IP address from
|
2010-11-26 13:33:53 +00:00
|
|
|
|
``127.0.0.1`` to ``::1``.
|
|
|
|
|
|
2007-09-09 22:00:30 +00:00
|
|
|
|
Examples of using different ports and addresses
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
2010-11-26 13:33:53 +00:00
|
|
|
|
Port 8000 on IP address ``127.0.0.1``::
|
2007-09-09 22:00:30 +00:00
|
|
|
|
|
2014-07-26 11:21:52 +00:00
|
|
|
|
django-admin runserver
|
2007-09-09 22:00:30 +00:00
|
|
|
|
|
2010-11-26 13:33:53 +00:00
|
|
|
|
Port 8000 on IP address ``1.2.3.4``::
|
2007-09-09 22:00:30 +00:00
|
|
|
|
|
2014-07-26 11:21:52 +00:00
|
|
|
|
django-admin runserver 1.2.3.4:8000
|
2005-08-19 21:23:56 +00:00
|
|
|
|
|
2010-11-26 13:33:53 +00:00
|
|
|
|
Port 7000 on IP address ``127.0.0.1``::
|
2005-08-19 21:23:56 +00:00
|
|
|
|
|
2014-07-26 11:21:52 +00:00
|
|
|
|
django-admin runserver 7000
|
2005-08-19 21:23:56 +00:00
|
|
|
|
|
2010-11-26 13:33:53 +00:00
|
|
|
|
Port 7000 on IP address ``1.2.3.4``::
|
2005-08-19 21:23:56 +00:00
|
|
|
|
|
2014-07-26 11:21:52 +00:00
|
|
|
|
django-admin runserver 1.2.3.4:7000
|
2005-08-19 21:23:56 +00:00
|
|
|
|
|
2010-11-26 13:33:53 +00:00
|
|
|
|
Port 8000 on IPv6 address ``::1``::
|
|
|
|
|
|
2014-07-26 11:21:52 +00:00
|
|
|
|
django-admin runserver -6
|
2010-11-26 13:33:53 +00:00
|
|
|
|
|
|
|
|
|
Port 7000 on IPv6 address ``::1``::
|
|
|
|
|
|
2014-07-26 11:21:52 +00:00
|
|
|
|
django-admin runserver -6 7000
|
2010-11-26 13:33:53 +00:00
|
|
|
|
|
|
|
|
|
Port 7000 on IPv6 address ``2001:0db8:1234:5678::9``::
|
|
|
|
|
|
2014-07-26 11:21:52 +00:00
|
|
|
|
django-admin runserver [2001:0db8:1234:5678::9]:7000
|
2010-11-26 13:33:53 +00:00
|
|
|
|
|
2011-01-15 06:31:38 +00:00
|
|
|
|
Port 8000 on IPv4 address of host ``localhost``::
|
|
|
|
|
|
2014-07-26 11:21:52 +00:00
|
|
|
|
django-admin runserver localhost:8000
|
2011-01-15 06:31:38 +00:00
|
|
|
|
|
|
|
|
|
Port 8000 on IPv6 address of host ``localhost``::
|
|
|
|
|
|
2014-07-26 11:21:52 +00:00
|
|
|
|
django-admin runserver -6 localhost:8000
|
2011-01-15 06:31:38 +00:00
|
|
|
|
|
2006-05-19 05:07:33 +00:00
|
|
|
|
Serving static files with the development server
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
2006-05-19 03:47:59 +00:00
|
|
|
|
|
2006-05-19 05:07:33 +00:00
|
|
|
|
By default, the development server doesn't serve any static files for your site
|
2011-05-29 17:41:04 +00:00
|
|
|
|
(such as CSS files, images, things under :setting:`MEDIA_URL` and so forth). If
|
2013-03-07 19:15:39 +00:00
|
|
|
|
you want to configure Django to serve static media, read
|
|
|
|
|
:doc:`/howto/static-files/index`.
|
2008-08-23 22:25:40 +00:00
|
|
|
|
|
2016-01-24 21:26:11 +00:00
|
|
|
|
``sendtestemail``
|
|
|
|
|
-----------------
|
2015-03-07 12:55:59 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin:: sendtestemail [email [email ...]]
|
2015-03-07 12:55:59 +00:00
|
|
|
|
|
|
|
|
|
Sends a test email (to confirm email sending through Django is working) to the
|
|
|
|
|
recipient(s) specified. For example::
|
|
|
|
|
|
|
|
|
|
django-admin sendtestemail foo@example.com bar@example.com
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
There are a couple of options, and you may use any combination of them
|
|
|
|
|
together:
|
|
|
|
|
|
2015-06-16 12:46:56 +00:00
|
|
|
|
.. django-admin-option:: --managers
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Mails the email addresses specified in :setting:`MANAGERS` using
|
|
|
|
|
:meth:`~django.core.mail.mail_managers()`.
|
2015-06-16 12:46:56 +00:00
|
|
|
|
|
|
|
|
|
.. django-admin-option:: --admins
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Mails the email addresses specified in :setting:`ADMINS` using
|
|
|
|
|
:meth:`~django.core.mail.mail_admins()`.
|
2015-06-16 12:46:56 +00:00
|
|
|
|
|
2016-01-24 21:26:11 +00:00
|
|
|
|
``shell``
|
|
|
|
|
---------
|
2006-01-12 20:56:10 +00:00
|
|
|
|
|
2009-11-12 13:58:32 +00:00
|
|
|
|
.. django-admin:: shell
|
|
|
|
|
|
2006-01-12 20:56:10 +00:00
|
|
|
|
Starts the Python interactive interpreter.
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --interface {ipython,bpython,python}, -i {ipython,bpython,python}
|
2006-01-12 20:56:10 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Specifies the shell to use. By default, Django will use IPython_ or bpython_ if
|
|
|
|
|
either is installed. If both are installed, specify which one you want like so:
|
2012-07-17 00:37:52 +00:00
|
|
|
|
|
|
|
|
|
IPython::
|
|
|
|
|
|
2014-07-26 11:21:52 +00:00
|
|
|
|
django-admin shell -i ipython
|
2012-07-17 00:37:52 +00:00
|
|
|
|
|
|
|
|
|
bpython::
|
|
|
|
|
|
2014-07-26 11:21:52 +00:00
|
|
|
|
django-admin shell -i bpython
|
2012-07-17 00:37:52 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
If you have a "rich" shell installed but want to force use of the "plain"
|
|
|
|
|
Python interpreter, use ``python`` as the interface name, like so::
|
|
|
|
|
|
|
|
|
|
django-admin shell -i python
|
|
|
|
|
|
2016-06-16 01:20:23 +00:00
|
|
|
|
.. _IPython: https://ipython.org/
|
2017-05-20 15:51:21 +00:00
|
|
|
|
.. _bpython: https://bpython-interpreter.org/
|
2006-01-12 20:56:10 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --nostartup
|
2013-01-25 00:21:26 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Disables reading the startup script for the "plain" Python interpreter. By
|
|
|
|
|
default, the script pointed to by the :envvar:`PYTHONSTARTUP` environment
|
|
|
|
|
variable or the ``~/.pythonrc.py`` script is read.
|
2013-01-25 00:21:26 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --command COMMAND, -c COMMAND
|
2015-11-07 11:07:28 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Lets you pass a command as a string to execute it as Django, like so::
|
2015-11-07 11:07:28 +00:00
|
|
|
|
|
|
|
|
|
django-admin shell --command="import django; print(django.__version__)"
|
|
|
|
|
|
2016-12-13 00:36:08 +00:00
|
|
|
|
You can also pass code in on standard input to execute it. For example:
|
|
|
|
|
|
|
|
|
|
.. code-block:: console
|
|
|
|
|
|
|
|
|
|
$ django-admin shell <<EOF
|
|
|
|
|
> import django
|
|
|
|
|
> print(django.__version__)
|
|
|
|
|
> EOF
|
|
|
|
|
|
|
|
|
|
On Windows, the REPL is output due to implementation limits of
|
|
|
|
|
:func:`select.select` on that platform.
|
|
|
|
|
|
2016-01-24 21:26:11 +00:00
|
|
|
|
``showmigrations``
|
|
|
|
|
------------------
|
2014-09-03 08:51:07 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin:: showmigrations [app_label [app_label ...]]
|
2014-09-03 08:51:07 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Shows all migrations in a project. You can choose from one of two formats:
|
2014-09-03 08:51:07 +00:00
|
|
|
|
|
|
|
|
|
.. django-admin-option:: --list, -l
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Lists all of the apps Django knows about, the migrations available for each
|
|
|
|
|
app, and whether or not each migration is applied (marked by an ``[X]`` next to
|
2019-03-07 16:52:10 +00:00
|
|
|
|
the migration name). For a ``--verbosity`` of 2 and above, the applied
|
|
|
|
|
datetimes are also shown.
|
2014-09-03 08:51:07 +00:00
|
|
|
|
|
|
|
|
|
Apps without migrations are also listed, but have ``(no migrations)`` printed
|
|
|
|
|
under them.
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
This is the default output format.
|
|
|
|
|
|
2014-09-03 08:51:07 +00:00
|
|
|
|
.. django-admin-option:: --plan, -p
|
|
|
|
|
|
2016-11-06 12:52:06 +00:00
|
|
|
|
Shows the migration plan Django will follow to apply migrations. Like
|
2016-01-12 01:59:34 +00:00
|
|
|
|
``--list``, applied migrations are marked by an ``[X]``. For a ``--verbosity``
|
|
|
|
|
of 2 and above, all dependencies of a migration will also be shown.
|
|
|
|
|
|
2016-11-06 12:52:06 +00:00
|
|
|
|
``app_label``\s arguments limit the output, however, dependencies of provided
|
|
|
|
|
apps may also be included.
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --database DATABASE
|
|
|
|
|
|
|
|
|
|
Specifies the database to examine. Defaults to ``default``.
|
2014-09-03 08:51:07 +00:00
|
|
|
|
|
2016-01-24 21:26:11 +00:00
|
|
|
|
``sqlflush``
|
|
|
|
|
------------
|
2007-08-25 19:32:30 +00:00
|
|
|
|
|
2009-11-12 13:58:32 +00:00
|
|
|
|
.. django-admin:: sqlflush
|
|
|
|
|
|
|
|
|
|
Prints the SQL statements that would be executed for the :djadmin:`flush`
|
|
|
|
|
command.
|
2007-08-25 19:32:30 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --database DATABASE
|
2009-12-22 15:18:51 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Specifies the database for which to print the SQL. Defaults to ``default``.
|
2013-09-06 20:27:51 +00:00
|
|
|
|
|
2016-01-24 21:26:11 +00:00
|
|
|
|
``sqlmigrate``
|
|
|
|
|
--------------
|
2016-01-12 01:59:34 +00:00
|
|
|
|
|
|
|
|
|
.. django-admin:: sqlmigrate app_label migration_name
|
2013-09-06 20:27:51 +00:00
|
|
|
|
|
|
|
|
|
Prints the SQL for the named migration. This requires an active database
|
|
|
|
|
connection, which it will use to resolve constraint names; this means you must
|
|
|
|
|
generate the SQL against a copy of the database you wish to later apply it on.
|
|
|
|
|
|
2014-08-16 15:21:14 +00:00
|
|
|
|
Note that ``sqlmigrate`` doesn't colorize its output.
|
|
|
|
|
|
2013-09-06 20:27:51 +00:00
|
|
|
|
.. django-admin-option:: --backwards
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Generates the SQL for unapplying the migration. By default, the SQL created is
|
|
|
|
|
for running the migration in the forwards direction.
|
|
|
|
|
|
|
|
|
|
.. django-admin-option:: --database DATABASE
|
|
|
|
|
|
|
|
|
|
Specifies the database for which to generate the SQL. Defaults to ``default``.
|
2013-09-06 20:27:51 +00:00
|
|
|
|
|
2016-01-24 21:26:11 +00:00
|
|
|
|
``sqlsequencereset``
|
|
|
|
|
--------------------
|
2005-08-10 20:24:51 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin:: sqlsequencereset app_label [app_label ...]
|
2009-11-12 13:58:32 +00:00
|
|
|
|
|
2007-09-09 21:57:59 +00:00
|
|
|
|
Prints the SQL statements for resetting sequences for the given app name(s).
|
2005-08-10 20:24:51 +00:00
|
|
|
|
|
2009-06-18 13:37:10 +00:00
|
|
|
|
Sequences are indexes used by some database engines to track the next available
|
|
|
|
|
number for automatically incremented fields.
|
|
|
|
|
|
|
|
|
|
Use this command to generate SQL which will fix cases where a sequence is out
|
|
|
|
|
of sync with its automatically incremented field data.
|
2005-08-10 20:24:51 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --database DATABASE
|
2009-12-22 15:18:51 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Specifies the database for which to print the SQL. Defaults to ``default``.
|
2014-04-14 17:07:02 +00:00
|
|
|
|
|
2016-01-24 21:26:11 +00:00
|
|
|
|
``squashmigrations``
|
|
|
|
|
--------------------
|
2016-01-12 01:59:34 +00:00
|
|
|
|
|
|
|
|
|
.. django-admin:: squashmigrations app_label [start_migration_name] migration_name
|
2014-04-14 17:07:02 +00:00
|
|
|
|
|
|
|
|
|
Squashes the migrations for ``app_label`` up to and including ``migration_name``
|
|
|
|
|
down into fewer migrations, if possible. The resulting squashed migrations
|
|
|
|
|
can live alongside the unsquashed ones safely. For more information,
|
|
|
|
|
please read :ref:`migration-squashing`.
|
|
|
|
|
|
2015-09-12 07:18:24 +00:00
|
|
|
|
When ``start_migration_name`` is given, Django will only include migrations
|
|
|
|
|
starting from and including this migration. This helps to mitigate the
|
|
|
|
|
squashing limitation of :class:`~django.db.migrations.operations.RunPython` and
|
|
|
|
|
:class:`django.db.migrations.operations.RunSQL` migration operations.
|
|
|
|
|
|
2014-04-14 17:07:02 +00:00
|
|
|
|
.. django-admin-option:: --no-optimize
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Disables the optimizer when generating a squashed migration. By default, Django
|
|
|
|
|
will try to optimize the operations in your migrations to reduce the size of
|
|
|
|
|
the resulting file. Use this option if this process is failing or creating
|
|
|
|
|
incorrect migrations, though please also file a Django bug report about the
|
|
|
|
|
behavior, as optimization is meant to be safe.
|
|
|
|
|
|
|
|
|
|
.. django-admin-option:: --noinput, --no-input
|
|
|
|
|
|
|
|
|
|
Suppresses all user prompts.
|
2014-04-14 17:07:02 +00:00
|
|
|
|
|
2017-02-20 14:45:20 +00:00
|
|
|
|
.. django-admin-option:: --squashed-name SQUASHED_NAME
|
|
|
|
|
|
|
|
|
|
Sets the name of the squashed migration. When omitted, the name is based on the
|
|
|
|
|
first and last migration, with ``_squashed_`` in between.
|
|
|
|
|
|
2018-12-19 11:41:31 +00:00
|
|
|
|
.. django-admin-option:: --no-header
|
|
|
|
|
|
|
|
|
|
Generate squashed migration file without Django version and timestamp header.
|
|
|
|
|
|
2016-01-24 21:26:11 +00:00
|
|
|
|
``startapp``
|
|
|
|
|
------------
|
2016-01-12 01:59:34 +00:00
|
|
|
|
|
|
|
|
|
.. django-admin:: startapp name [directory]
|
2009-11-12 13:58:32 +00:00
|
|
|
|
|
2005-08-10 20:24:51 +00:00
|
|
|
|
Creates a Django app directory structure for the given app name in the current
|
2011-12-22 22:38:02 +00:00
|
|
|
|
directory or the given destination.
|
|
|
|
|
|
2019-03-29 00:32:17 +00:00
|
|
|
|
By default, :source:`the new directory <django/conf/app_template>` contains a
|
|
|
|
|
``models.py`` file and other app template files. If only the app name is given,
|
|
|
|
|
the app directory will be created in the current working directory.
|
2005-08-10 20:24:51 +00:00
|
|
|
|
|
2012-01-04 23:55:34 +00:00
|
|
|
|
If the optional destination is provided, Django will use that existing
|
|
|
|
|
directory rather than creating a new one. You can use '.' to denote the current
|
|
|
|
|
working directory.
|
2011-12-22 22:38:02 +00:00
|
|
|
|
|
2011-12-30 18:14:31 +00:00
|
|
|
|
For example::
|
2011-12-22 22:38:02 +00:00
|
|
|
|
|
2014-07-26 11:21:52 +00:00
|
|
|
|
django-admin startapp myapp /Users/jezdez/Code/myapp
|
2011-12-22 22:38:02 +00:00
|
|
|
|
|
Simplified default project template.
Squashed commit of:
commit 508ec9144b35c50794708225b496bde1eb5e60aa
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Tue Jan 29 22:50:55 2013 +0100
Tweaked default settings file.
* Explained why BASE_DIR exists.
* Added a link to the database configuration options, and put it in its
own section.
* Moved sensitive settings that must be changed for production at the
top.
commit 6515fd2f1aa73a86dc8dbd2ccf512ddb6b140d57
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Tue Jan 29 14:35:21 2013 +0100
Documented the simplified app & project templates in the changelog.
commit 2c5b576c2ea91d84273a019b3d0b3b8b4da72f23
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Tue Jan 29 13:59:27 2013 +0100
Minor fixes in tutorials 5 and 6.
commit 55a51531be8104f21b3cca3f6bf70b0a7139a041
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Tue Jan 29 13:51:11 2013 +0100
Updated tutorial 2 for the new project template.
commit 29ddae87bdaecff12dd31b16b000c01efbde9e20
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Tue Jan 29 11:58:54 2013 +0100
Updated tutorial 1 for the new project template.
commit 0ecb9f6e2514cfd26a678a280d471433375101a3
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Tue Jan 29 11:29:13 2013 +0100
Adjusted the default URLconf detection to account for the admin.
It's now enabled by default.
commit 5fb4da0d3d09dac28dd94e3fde92b9d4335c0565
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Tue Jan 29 10:36:55 2013 +0100
Added security warnings for the most sensitive settings.
commit 718d84bd8ac4a42fb4b28ec93965de32680f091e
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 23:24:06 2013 +0100
Used an absolute path for the SQLite database.
This ensures the settings file works regardless of which directory
django-admin.py / manage.py is invoked from.
BASE_DIR got a +1 from a BDFL and another core dev. It doesn't involve
the concept of a "Django project"; it's just a convenient way to express
relative paths within the source code repository for non-Python files.
Thanks Jacob Kaplan-Moss for the suggestion.
commit 1b559b4bcda622e10909b68fe5cab90db6727dd9
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 23:22:40 2013 +0100
Removed STATIC_ROOT from the default settings template.
It isn't necessary in development, and it confuses beginners to no end.
Thanks Carl Meyer for the suggestion.
commit a55f141a500bb7c9a1bc259bbe1954c13b199671
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 23:21:43 2013 +0100
Removed MEDIA_ROOT/URL from default settings template.
Many sites will never deal with user-uploaded files, and MEDIA_ROOT is
complicated to explain.
Thanks Carl Meyer for the suggestion.
commit 44bf2f2441420fd9429ee9fe1f7207f92dd87e70
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 22:22:09 2013 +0100
Removed logging config.
This configuration is applied regardless of the value of LOGGING;
duplicating it in LOGGING is confusing.
commit eac747e848eaed65fd5f6f254f0a7559d856f88f
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 22:05:31 2013 +0100
Enabled the locale middleware by default.
USE_I18N is True by default, and doesn't work well without
LocaleMiddleware.
commit d806c62b2d00826dc2688c84b092627b8d571cab
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 22:03:16 2013 +0100
Enabled clickjacking protection by default.
commit 99152c30e6a15003f0b6737dc78e87adf462aacb
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 22:01:48 2013 +0100
Reorganized settings in logical sections, and trimmed comments.
commit d37ffdfcb24b7e0ec7cc113d07190f65fb12fb8a
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 16:54:11 2013 +0100
Avoided misleading TEMPLATE_DEBUG = DEBUG.
According to the docs TEMPLATE_DEBUG works only when DEBUG = True.
commit 15d9478d3a9850e85841e7cf09cf83050371c6bf
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 16:46:25 2013 +0100
Removed STATICFILES_FINDERS/TEMPLATE_LOADERS from default settings file.
Only developers with special needs ever need to change these settings.
commit 574da0eb5bfb4570883756914b4dbd7e20e1f61e
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 16:45:01 2013 +0100
Removed STATICFILES/TEMPLATES_DIRS from default settings file.
The current best practice is to put static files and templates in
applications, for easier testing and deployment.
commit 8cb18dbe56629aa1be74718a07e7cc66b4f9c9f0
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 16:24:16 2013 +0100
Removed settings related to email reporting from default settings file.
While handy for small scale projects, it isn't exactly a best practice.
commit 8ecbfcb3638058f0c49922540f874a7d802d864f
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Tue Jan 29 18:54:43 2013 +0100
Documented how to enable the sites framework.
commit 23fc91a6fa67d91ddd9d71b1c3e0dc26bdad9841
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 16:28:59 2013 +0100
Disabled the sites framework by default.
RequestSite does the job for single-domain websites.
commit c4d82eb8afc0eb8568bf9c4d12644272415e3960
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Tue Jan 29 00:08:33 2013 +0100
Added a default admin.py to the application template.
Thanks Ryan D Hiebert for the suggestion.
commit 4071dc771e5c44b1c5ebb9beecefb164ae465e22
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 10:59:49 2013 +0100
Enabled the admin by default.
Everyone uses the admin.
commit c807a31f8d89e7e7fd97380e3023f7983a8b6fcb
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 10:57:05 2013 +0100
Removed admindocs from default project template.
commit 09e4ce0e652a97da1a9e285046a91c8ad7a9189c
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 16:32:52 2013 +0100
Added links to the settings documentation.
commit 5b8f5eaef364eb790fcde6f9e86f7d266074cca8
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 11:06:54 2013 +0100
Used a significant example for URLconf includes.
commit 908e91d6fcee2a3cb51ca26ecdf12a6a24e69ef8
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 16:22:31 2013 +0100
Moved code comments about WSGI to docs, and rewrote said docs.
commit 50417e51996146f891d08ca8b74dcc736a581932
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 15:51:50 2013 +0100
Normalized the default application template.
Removed the default test that 1 + 1 = 2, because it's been committed
way too many times, in too many projects.
Added an import of `render` for views, because the first view will
often be:
def home(request):
return render(request, "mysite/home.html")
2013-01-28 14:51:50 +00:00
|
|
|
|
.. _custom-app-and-project-templates:
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --template TEMPLATE
|
2011-12-22 22:38:02 +00:00
|
|
|
|
|
2019-02-06 21:43:30 +00:00
|
|
|
|
Provides the path to a directory with a custom app template file, or a path to
|
|
|
|
|
an uncompressed archive (``.tar``) or a compressed archive (``.tar.gz``,
|
2019-02-05 22:00:56 +00:00
|
|
|
|
``.tar.bz2``, ``.tar.xz``, ``.tar.lzma``, ``.tgz``, ``.tbz2``, ``.txz``,
|
|
|
|
|
``.tlz``, ``.zip``) containing the app template files.
|
2011-12-22 22:38:02 +00:00
|
|
|
|
|
2012-11-16 05:17:58 +00:00
|
|
|
|
For example, this would look for an app template in the given directory when
|
|
|
|
|
creating the ``myapp`` app::
|
|
|
|
|
|
2014-07-26 11:21:52 +00:00
|
|
|
|
django-admin startapp --template=/Users/jezdez/Code/my_app_template myapp
|
2012-11-16 05:17:58 +00:00
|
|
|
|
|
2011-12-30 18:14:31 +00:00
|
|
|
|
Django will also accept URLs (``http``, ``https``, ``ftp``) to compressed
|
|
|
|
|
archives with the app template files, downloading and extracting them on the
|
|
|
|
|
fly.
|
2011-12-22 22:38:02 +00:00
|
|
|
|
|
2015-10-21 04:50:20 +00:00
|
|
|
|
For example, taking advantage of GitHub's feature to expose repositories as
|
2012-11-16 05:17:58 +00:00
|
|
|
|
zip files, you can use a URL like::
|
2011-12-22 22:38:02 +00:00
|
|
|
|
|
2021-11-22 10:47:38 +00:00
|
|
|
|
django-admin startapp --template=https://github.com/githubuser/django-app-template/archive/main.zip myapp
|
2011-12-22 22:38:02 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --extension EXTENSIONS, -e EXTENSIONS
|
|
|
|
|
|
|
|
|
|
Specifies which file extensions in the app template should be rendered with the
|
|
|
|
|
template engine. Defaults to ``py``.
|
|
|
|
|
|
|
|
|
|
.. django-admin-option:: --name FILES, -n FILES
|
|
|
|
|
|
|
|
|
|
Specifies which files in the app template (in addition to those matching
|
|
|
|
|
``--extension``) should be rendered with the template engine. Defaults to an
|
|
|
|
|
empty list.
|
|
|
|
|
|
2021-07-24 00:09:03 +00:00
|
|
|
|
.. django-admin-option:: --exclude DIRECTORIES, -x DIRECTORIES
|
|
|
|
|
|
|
|
|
|
Specifies which directories in the app template should be excluded, in addition
|
|
|
|
|
to ``.git`` and ``__pycache__``. If this option is not provided, directories
|
|
|
|
|
named ``__pycache__`` or starting with ``.`` will be excluded.
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
The :class:`template context <django.template.Context>` used for all matching
|
|
|
|
|
files is:
|
2011-12-22 22:38:02 +00:00
|
|
|
|
|
2014-03-11 12:09:44 +00:00
|
|
|
|
- Any option passed to the ``startapp`` command (among the command's supported
|
2012-07-07 21:08:43 +00:00
|
|
|
|
options)
|
2011-12-30 18:14:31 +00:00
|
|
|
|
- ``app_name`` -- the app name as passed to the command
|
2011-12-22 22:38:02 +00:00
|
|
|
|
- ``app_directory`` -- the full path of the newly created app
|
2015-06-13 13:41:56 +00:00
|
|
|
|
- ``camel_case_app_name`` -- the app name in camel case format
|
Simplified default project template.
Squashed commit of:
commit 508ec9144b35c50794708225b496bde1eb5e60aa
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Tue Jan 29 22:50:55 2013 +0100
Tweaked default settings file.
* Explained why BASE_DIR exists.
* Added a link to the database configuration options, and put it in its
own section.
* Moved sensitive settings that must be changed for production at the
top.
commit 6515fd2f1aa73a86dc8dbd2ccf512ddb6b140d57
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Tue Jan 29 14:35:21 2013 +0100
Documented the simplified app & project templates in the changelog.
commit 2c5b576c2ea91d84273a019b3d0b3b8b4da72f23
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Tue Jan 29 13:59:27 2013 +0100
Minor fixes in tutorials 5 and 6.
commit 55a51531be8104f21b3cca3f6bf70b0a7139a041
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Tue Jan 29 13:51:11 2013 +0100
Updated tutorial 2 for the new project template.
commit 29ddae87bdaecff12dd31b16b000c01efbde9e20
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Tue Jan 29 11:58:54 2013 +0100
Updated tutorial 1 for the new project template.
commit 0ecb9f6e2514cfd26a678a280d471433375101a3
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Tue Jan 29 11:29:13 2013 +0100
Adjusted the default URLconf detection to account for the admin.
It's now enabled by default.
commit 5fb4da0d3d09dac28dd94e3fde92b9d4335c0565
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Tue Jan 29 10:36:55 2013 +0100
Added security warnings for the most sensitive settings.
commit 718d84bd8ac4a42fb4b28ec93965de32680f091e
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 23:24:06 2013 +0100
Used an absolute path for the SQLite database.
This ensures the settings file works regardless of which directory
django-admin.py / manage.py is invoked from.
BASE_DIR got a +1 from a BDFL and another core dev. It doesn't involve
the concept of a "Django project"; it's just a convenient way to express
relative paths within the source code repository for non-Python files.
Thanks Jacob Kaplan-Moss for the suggestion.
commit 1b559b4bcda622e10909b68fe5cab90db6727dd9
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 23:22:40 2013 +0100
Removed STATIC_ROOT from the default settings template.
It isn't necessary in development, and it confuses beginners to no end.
Thanks Carl Meyer for the suggestion.
commit a55f141a500bb7c9a1bc259bbe1954c13b199671
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 23:21:43 2013 +0100
Removed MEDIA_ROOT/URL from default settings template.
Many sites will never deal with user-uploaded files, and MEDIA_ROOT is
complicated to explain.
Thanks Carl Meyer for the suggestion.
commit 44bf2f2441420fd9429ee9fe1f7207f92dd87e70
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 22:22:09 2013 +0100
Removed logging config.
This configuration is applied regardless of the value of LOGGING;
duplicating it in LOGGING is confusing.
commit eac747e848eaed65fd5f6f254f0a7559d856f88f
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 22:05:31 2013 +0100
Enabled the locale middleware by default.
USE_I18N is True by default, and doesn't work well without
LocaleMiddleware.
commit d806c62b2d00826dc2688c84b092627b8d571cab
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 22:03:16 2013 +0100
Enabled clickjacking protection by default.
commit 99152c30e6a15003f0b6737dc78e87adf462aacb
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 22:01:48 2013 +0100
Reorganized settings in logical sections, and trimmed comments.
commit d37ffdfcb24b7e0ec7cc113d07190f65fb12fb8a
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 16:54:11 2013 +0100
Avoided misleading TEMPLATE_DEBUG = DEBUG.
According to the docs TEMPLATE_DEBUG works only when DEBUG = True.
commit 15d9478d3a9850e85841e7cf09cf83050371c6bf
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 16:46:25 2013 +0100
Removed STATICFILES_FINDERS/TEMPLATE_LOADERS from default settings file.
Only developers with special needs ever need to change these settings.
commit 574da0eb5bfb4570883756914b4dbd7e20e1f61e
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 16:45:01 2013 +0100
Removed STATICFILES/TEMPLATES_DIRS from default settings file.
The current best practice is to put static files and templates in
applications, for easier testing and deployment.
commit 8cb18dbe56629aa1be74718a07e7cc66b4f9c9f0
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 16:24:16 2013 +0100
Removed settings related to email reporting from default settings file.
While handy for small scale projects, it isn't exactly a best practice.
commit 8ecbfcb3638058f0c49922540f874a7d802d864f
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Tue Jan 29 18:54:43 2013 +0100
Documented how to enable the sites framework.
commit 23fc91a6fa67d91ddd9d71b1c3e0dc26bdad9841
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 16:28:59 2013 +0100
Disabled the sites framework by default.
RequestSite does the job for single-domain websites.
commit c4d82eb8afc0eb8568bf9c4d12644272415e3960
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Tue Jan 29 00:08:33 2013 +0100
Added a default admin.py to the application template.
Thanks Ryan D Hiebert for the suggestion.
commit 4071dc771e5c44b1c5ebb9beecefb164ae465e22
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 10:59:49 2013 +0100
Enabled the admin by default.
Everyone uses the admin.
commit c807a31f8d89e7e7fd97380e3023f7983a8b6fcb
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 10:57:05 2013 +0100
Removed admindocs from default project template.
commit 09e4ce0e652a97da1a9e285046a91c8ad7a9189c
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 16:32:52 2013 +0100
Added links to the settings documentation.
commit 5b8f5eaef364eb790fcde6f9e86f7d266074cca8
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 11:06:54 2013 +0100
Used a significant example for URLconf includes.
commit 908e91d6fcee2a3cb51ca26ecdf12a6a24e69ef8
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 16:22:31 2013 +0100
Moved code comments about WSGI to docs, and rewrote said docs.
commit 50417e51996146f891d08ca8b74dcc736a581932
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 15:51:50 2013 +0100
Normalized the default application template.
Removed the default test that 1 + 1 = 2, because it's been committed
way too many times, in too many projects.
Added an import of `render` for views, because the first view will
often be:
def home(request):
return render(request, "mysite/home.html")
2013-01-28 14:51:50 +00:00
|
|
|
|
- ``docs_version`` -- the version of the documentation: ``'dev'`` or ``'1.x'``
|
2019-07-09 11:38:11 +00:00
|
|
|
|
- ``django_version`` -- the version of Django, e.g. ``'2.0.3'``
|
2011-12-22 22:38:02 +00:00
|
|
|
|
|
|
|
|
|
.. _render_warning:
|
|
|
|
|
|
|
|
|
|
.. warning::
|
|
|
|
|
|
|
|
|
|
When the app template files are rendered with the Django template
|
2011-12-30 18:14:31 +00:00
|
|
|
|
engine (by default all ``*.py`` files), Django will also replace all
|
|
|
|
|
stray template variables contained. For example, if one of the Python files
|
|
|
|
|
contains a docstring explaining a particular feature related
|
2011-12-22 22:38:02 +00:00
|
|
|
|
to template rendering, it might result in an incorrect example.
|
|
|
|
|
|
2011-12-30 18:14:31 +00:00
|
|
|
|
To work around this problem, you can use the :ttag:`templatetag`
|
2018-01-23 14:40:18 +00:00
|
|
|
|
template tag to "escape" the various parts of the template syntax.
|
2011-12-22 22:38:02 +00:00
|
|
|
|
|
2016-01-24 09:06:01 +00:00
|
|
|
|
In addition, to allow Python template files that contain Django template
|
|
|
|
|
language syntax while also preventing packaging systems from trying to
|
|
|
|
|
byte-compile invalid ``*.py`` files, template files ending with ``.py-tpl``
|
|
|
|
|
will be renamed to ``.py``.
|
|
|
|
|
|
2022-08-24 09:38:22 +00:00
|
|
|
|
.. _trusted_code_warning:
|
|
|
|
|
|
|
|
|
|
.. warning::
|
|
|
|
|
|
|
|
|
|
The contents of custom app (or project) templates should always be
|
|
|
|
|
audited before use: Such templates define code that will become
|
|
|
|
|
part of your project, and this means that such code will be trusted
|
|
|
|
|
as much as any app you install, or code you write yourself.
|
|
|
|
|
Further, even rendering the templates is, effectively, executing
|
|
|
|
|
code that was provided as input to the management command. The
|
|
|
|
|
Django template language may provide wide access into the system,
|
|
|
|
|
so make sure any custom template you use is worthy of your trust.
|
|
|
|
|
|
2016-01-24 21:26:11 +00:00
|
|
|
|
``startproject``
|
|
|
|
|
----------------
|
2005-08-10 20:24:51 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin:: startproject name [directory]
|
2009-11-12 13:58:32 +00:00
|
|
|
|
|
2011-12-22 22:38:02 +00:00
|
|
|
|
Creates a Django project directory structure for the given project name in
|
|
|
|
|
the current directory or the given destination.
|
|
|
|
|
|
2019-03-29 00:32:17 +00:00
|
|
|
|
By default, :source:`the new directory <django/conf/project_template>` contains
|
|
|
|
|
``manage.py`` and a project package (containing a ``settings.py`` and other
|
|
|
|
|
files).
|
2011-12-22 22:38:02 +00:00
|
|
|
|
|
|
|
|
|
If only the project name is given, both the project directory and project
|
|
|
|
|
package will be named ``<projectname>`` and the project directory
|
|
|
|
|
will be created in the current working directory.
|
|
|
|
|
|
2012-01-04 23:55:34 +00:00
|
|
|
|
If the optional destination is provided, Django will use that existing
|
|
|
|
|
directory as the project directory, and create ``manage.py`` and the project
|
2012-02-03 17:52:39 +00:00
|
|
|
|
package within it. Use '.' to denote the current working directory.
|
2011-12-30 18:14:31 +00:00
|
|
|
|
|
|
|
|
|
For example::
|
2011-12-22 22:38:02 +00:00
|
|
|
|
|
2014-07-26 11:21:52 +00:00
|
|
|
|
django-admin startproject myproject /Users/jezdez/Code/myproject_repo
|
2011-12-22 22:38:02 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --template TEMPLATE
|
2011-12-22 22:38:02 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Specifies a directory, file path, or URL of a custom project template. See the
|
|
|
|
|
:option:`startapp --template` documentation for examples and usage.
|
2011-12-22 22:38:02 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --extension EXTENSIONS, -e EXTENSIONS
|
2011-12-22 22:38:02 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Specifies which file extensions in the project template should be rendered with
|
|
|
|
|
the template engine. Defaults to ``py``.
|
2012-11-16 05:17:58 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --name FILES, -n FILES
|
2012-11-16 05:17:58 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Specifies which files in the project template (in addition to those matching
|
|
|
|
|
``--extension``) should be rendered with the template engine. Defaults to an
|
|
|
|
|
empty list.
|
2012-11-16 05:17:58 +00:00
|
|
|
|
|
2021-07-24 00:09:03 +00:00
|
|
|
|
.. django-admin-option:: --exclude DIRECTORIES, -x DIRECTORIES
|
|
|
|
|
|
|
|
|
|
Specifies which directories in the project template should be excluded, in
|
|
|
|
|
addition to ``.git`` and ``__pycache__``. If this option is not provided,
|
|
|
|
|
directories named ``__pycache__`` or starting with ``.`` will be excluded.
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
The :class:`template context <django.template.Context>` used is:
|
2011-12-22 22:38:02 +00:00
|
|
|
|
|
2014-03-11 12:09:44 +00:00
|
|
|
|
- Any option passed to the ``startproject`` command (among the command's
|
|
|
|
|
supported options)
|
2011-12-22 22:38:02 +00:00
|
|
|
|
- ``project_name`` -- the project name as passed to the command
|
|
|
|
|
- ``project_directory`` -- the full path of the newly created project
|
|
|
|
|
- ``secret_key`` -- a random key for the :setting:`SECRET_KEY` setting
|
Simplified default project template.
Squashed commit of:
commit 508ec9144b35c50794708225b496bde1eb5e60aa
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Tue Jan 29 22:50:55 2013 +0100
Tweaked default settings file.
* Explained why BASE_DIR exists.
* Added a link to the database configuration options, and put it in its
own section.
* Moved sensitive settings that must be changed for production at the
top.
commit 6515fd2f1aa73a86dc8dbd2ccf512ddb6b140d57
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Tue Jan 29 14:35:21 2013 +0100
Documented the simplified app & project templates in the changelog.
commit 2c5b576c2ea91d84273a019b3d0b3b8b4da72f23
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Tue Jan 29 13:59:27 2013 +0100
Minor fixes in tutorials 5 and 6.
commit 55a51531be8104f21b3cca3f6bf70b0a7139a041
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Tue Jan 29 13:51:11 2013 +0100
Updated tutorial 2 for the new project template.
commit 29ddae87bdaecff12dd31b16b000c01efbde9e20
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Tue Jan 29 11:58:54 2013 +0100
Updated tutorial 1 for the new project template.
commit 0ecb9f6e2514cfd26a678a280d471433375101a3
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Tue Jan 29 11:29:13 2013 +0100
Adjusted the default URLconf detection to account for the admin.
It's now enabled by default.
commit 5fb4da0d3d09dac28dd94e3fde92b9d4335c0565
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Tue Jan 29 10:36:55 2013 +0100
Added security warnings for the most sensitive settings.
commit 718d84bd8ac4a42fb4b28ec93965de32680f091e
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 23:24:06 2013 +0100
Used an absolute path for the SQLite database.
This ensures the settings file works regardless of which directory
django-admin.py / manage.py is invoked from.
BASE_DIR got a +1 from a BDFL and another core dev. It doesn't involve
the concept of a "Django project"; it's just a convenient way to express
relative paths within the source code repository for non-Python files.
Thanks Jacob Kaplan-Moss for the suggestion.
commit 1b559b4bcda622e10909b68fe5cab90db6727dd9
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 23:22:40 2013 +0100
Removed STATIC_ROOT from the default settings template.
It isn't necessary in development, and it confuses beginners to no end.
Thanks Carl Meyer for the suggestion.
commit a55f141a500bb7c9a1bc259bbe1954c13b199671
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 23:21:43 2013 +0100
Removed MEDIA_ROOT/URL from default settings template.
Many sites will never deal with user-uploaded files, and MEDIA_ROOT is
complicated to explain.
Thanks Carl Meyer for the suggestion.
commit 44bf2f2441420fd9429ee9fe1f7207f92dd87e70
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 22:22:09 2013 +0100
Removed logging config.
This configuration is applied regardless of the value of LOGGING;
duplicating it in LOGGING is confusing.
commit eac747e848eaed65fd5f6f254f0a7559d856f88f
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 22:05:31 2013 +0100
Enabled the locale middleware by default.
USE_I18N is True by default, and doesn't work well without
LocaleMiddleware.
commit d806c62b2d00826dc2688c84b092627b8d571cab
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 22:03:16 2013 +0100
Enabled clickjacking protection by default.
commit 99152c30e6a15003f0b6737dc78e87adf462aacb
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 22:01:48 2013 +0100
Reorganized settings in logical sections, and trimmed comments.
commit d37ffdfcb24b7e0ec7cc113d07190f65fb12fb8a
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 16:54:11 2013 +0100
Avoided misleading TEMPLATE_DEBUG = DEBUG.
According to the docs TEMPLATE_DEBUG works only when DEBUG = True.
commit 15d9478d3a9850e85841e7cf09cf83050371c6bf
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 16:46:25 2013 +0100
Removed STATICFILES_FINDERS/TEMPLATE_LOADERS from default settings file.
Only developers with special needs ever need to change these settings.
commit 574da0eb5bfb4570883756914b4dbd7e20e1f61e
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 16:45:01 2013 +0100
Removed STATICFILES/TEMPLATES_DIRS from default settings file.
The current best practice is to put static files and templates in
applications, for easier testing and deployment.
commit 8cb18dbe56629aa1be74718a07e7cc66b4f9c9f0
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 16:24:16 2013 +0100
Removed settings related to email reporting from default settings file.
While handy for small scale projects, it isn't exactly a best practice.
commit 8ecbfcb3638058f0c49922540f874a7d802d864f
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Tue Jan 29 18:54:43 2013 +0100
Documented how to enable the sites framework.
commit 23fc91a6fa67d91ddd9d71b1c3e0dc26bdad9841
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 16:28:59 2013 +0100
Disabled the sites framework by default.
RequestSite does the job for single-domain websites.
commit c4d82eb8afc0eb8568bf9c4d12644272415e3960
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Tue Jan 29 00:08:33 2013 +0100
Added a default admin.py to the application template.
Thanks Ryan D Hiebert for the suggestion.
commit 4071dc771e5c44b1c5ebb9beecefb164ae465e22
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 10:59:49 2013 +0100
Enabled the admin by default.
Everyone uses the admin.
commit c807a31f8d89e7e7fd97380e3023f7983a8b6fcb
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 10:57:05 2013 +0100
Removed admindocs from default project template.
commit 09e4ce0e652a97da1a9e285046a91c8ad7a9189c
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 16:32:52 2013 +0100
Added links to the settings documentation.
commit 5b8f5eaef364eb790fcde6f9e86f7d266074cca8
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 11:06:54 2013 +0100
Used a significant example for URLconf includes.
commit 908e91d6fcee2a3cb51ca26ecdf12a6a24e69ef8
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 16:22:31 2013 +0100
Moved code comments about WSGI to docs, and rewrote said docs.
commit 50417e51996146f891d08ca8b74dcc736a581932
Author: Aymeric Augustin <aymeric.augustin@m4x.org>
Date: Mon Jan 28 15:51:50 2013 +0100
Normalized the default application template.
Removed the default test that 1 + 1 = 2, because it's been committed
way too many times, in too many projects.
Added an import of `render` for views, because the first view will
often be:
def home(request):
return render(request, "mysite/home.html")
2013-01-28 14:51:50 +00:00
|
|
|
|
- ``docs_version`` -- the version of the documentation: ``'dev'`` or ``'1.x'``
|
2019-07-09 11:38:11 +00:00
|
|
|
|
- ``django_version`` -- the version of Django, e.g. ``'2.0.3'``
|
2011-12-22 22:38:02 +00:00
|
|
|
|
|
2022-08-24 09:38:22 +00:00
|
|
|
|
Please also see the :ref:`rendering warning <render_warning>` and
|
|
|
|
|
:ref:`trusted code warning <trusted_code_warning>` as mentioned for
|
|
|
|
|
:djadmin:`startapp`.
|
2011-12-22 22:38:02 +00:00
|
|
|
|
|
2016-01-24 21:26:11 +00:00
|
|
|
|
``test``
|
|
|
|
|
--------
|
2007-09-09 21:57:59 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin:: test [test_label [test_label ...]]
|
2006-08-29 18:04:09 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Runs tests for all installed apps. See :doc:`/topics/testing/index` for more
|
2008-08-23 22:25:40 +00:00
|
|
|
|
information.
|
2007-08-16 23:05:00 +00:00
|
|
|
|
|
2009-12-31 18:48:28 +00:00
|
|
|
|
.. django-admin-option:: --failfast
|
2009-12-13 16:24:36 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Stops running tests and reports the failure immediately after a test fails.
|
2009-12-13 16:24:36 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --testrunner TESTRUNNER
|
2011-06-10 08:26:05 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Controls the test runner class that is used to execute tests. This value
|
|
|
|
|
overrides the value provided by the :setting:`TEST_RUNNER` setting.
|
Fixed #2879 -- Added support for the integration with Selenium and other in-browser testing frameworks. Also added the first Selenium tests for `contrib.admin`. Many thanks to everyone for their contributions and feedback: Mikeal Rogers, Dirk Datzert, mir, Simon G., Almad, Russell Keith-Magee, Denis Golomazov, devin, robertrv, andrewbadr, Idan Gazit, voidspace, Tom Christie, hjwp2, Adam Nelson, Jannis Leidel, Anssi Kääriäinen, Preston Holmes, Bruno Renié and Jacob Kaplan-Moss.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@17241 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2011-12-22 08:33:58 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --noinput, --no-input
|
|
|
|
|
|
|
|
|
|
Suppresses all user prompts. A typical prompt is a warning about deleting an
|
|
|
|
|
existing test database.
|
|
|
|
|
|
|
|
|
|
Test runner options
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
|
|
The ``test`` command receives options on behalf of the specified
|
|
|
|
|
:option:`--testrunner`. These are the options of the default test runner:
|
|
|
|
|
:class:`~django.test.runner.DiscoverRunner`.
|
|
|
|
|
|
2019-03-07 20:58:30 +00:00
|
|
|
|
.. django-admin-option:: --keepdb
|
2014-05-27 21:13:08 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Preserves the test database between test runs. This has the advantage of
|
|
|
|
|
skipping both the create and destroy actions which can greatly decrease the
|
|
|
|
|
time to run tests, especially those in a large test suite. If the test database
|
|
|
|
|
does not exist, it will be created on the first run and then preserved for each
|
2019-11-13 03:49:09 +00:00
|
|
|
|
subsequent run. Unless the :setting:`MIGRATE <TEST_MIGRATE>` test setting is
|
|
|
|
|
``False``, any unapplied migrations will also be applied to the test database
|
|
|
|
|
before running the test suite.
|
2014-05-27 21:13:08 +00:00
|
|
|
|
|
2021-04-24 23:46:16 +00:00
|
|
|
|
.. django-admin-option:: --shuffle [SEED]
|
|
|
|
|
|
|
|
|
|
Randomizes the order of tests before running them. This can help detect tests
|
|
|
|
|
that aren't properly isolated. The test order generated by this option is a
|
|
|
|
|
deterministic function of the integer seed given. When no seed is passed, a
|
|
|
|
|
seed is chosen randomly and printed to the console. To repeat a particular test
|
|
|
|
|
order, pass a seed. The test orders generated by this option preserve Django's
|
|
|
|
|
:ref:`guarantees on test order <order-of-tests>`. They also keep tests grouped
|
|
|
|
|
by test case class.
|
|
|
|
|
|
|
|
|
|
The shuffled orderings also have a special consistency property useful when
|
|
|
|
|
narrowing down isolation issues. Namely, for a given seed and when running a
|
|
|
|
|
subset of tests, the new order will be the original shuffling restricted to the
|
|
|
|
|
smaller set. Similarly, when adding tests while keeping the seed the same, the
|
|
|
|
|
order of the original tests will be the same in the new order.
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --reverse, -r
|
2014-11-22 16:59:05 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Sorts test cases in the opposite execution order. This may help in debugging
|
|
|
|
|
the side effects of tests that aren't properly isolated. :ref:`Grouping by test
|
2021-04-24 23:46:16 +00:00
|
|
|
|
class <order-of-tests>` is preserved when using this option. This can be used
|
|
|
|
|
in conjunction with ``--shuffle`` to reverse the order for a particular seed.
|
2014-11-22 16:59:05 +00:00
|
|
|
|
|
2016-08-10 17:46:54 +00:00
|
|
|
|
.. django-admin-option:: --debug-mode
|
|
|
|
|
|
|
|
|
|
Sets the :setting:`DEBUG` setting to ``True`` prior to running tests. This may
|
|
|
|
|
help troubleshoot test failures.
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --debug-sql, -d
|
2015-01-10 22:52:59 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Enables :ref:`SQL logging <django-db-logger>` for failing tests. If
|
|
|
|
|
``--verbosity`` is ``2``, then queries in passing tests are also output.
|
2015-01-10 22:52:59 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --parallel [N]
|
2015-02-05 19:31:02 +00:00
|
|
|
|
|
2020-04-30 10:12:05 +00:00
|
|
|
|
.. envvar:: DJANGO_TEST_PROCESSES
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Runs tests in separate parallel processes. Since modern processors have
|
|
|
|
|
multiple cores, this allows running tests significantly faster.
|
2015-02-05 19:31:02 +00:00
|
|
|
|
|
2020-05-23 18:32:22 +00:00
|
|
|
|
Using ``--parallel`` without a value, or with the value ``auto``, runs one test
|
|
|
|
|
process per core according to :func:`multiprocessing.cpu_count()`. You can
|
|
|
|
|
override this by passing the desired number of processes, e.g.
|
2021-08-04 08:49:30 +00:00
|
|
|
|
``--parallel 4``, or by setting the :envvar:`DJANGO_TEST_PROCESSES` environment
|
|
|
|
|
variable.
|
2015-02-05 19:31:02 +00:00
|
|
|
|
|
2015-09-10 12:06:06 +00:00
|
|
|
|
Django distributes test cases — :class:`unittest.TestCase` subclasses — to
|
|
|
|
|
subprocesses. If there are fewer test cases than configured processes, Django
|
|
|
|
|
will reduce the number of processes accordingly.
|
|
|
|
|
|
2015-02-09 21:00:09 +00:00
|
|
|
|
Each process gets its own database. You must ensure that different test cases
|
|
|
|
|
don't access the same resources. For instance, test cases that touch the
|
|
|
|
|
filesystem should create a temporary directory for their own use.
|
|
|
|
|
|
2019-06-05 14:35:36 +00:00
|
|
|
|
.. note::
|
|
|
|
|
|
|
|
|
|
If you have test classes that cannot be run in parallel, you can use
|
|
|
|
|
``SerializeMixin`` to run them sequentially. See :ref:`Enforce running test
|
|
|
|
|
classes sequentially <topics-testing-enforce-run-sequentially>`.
|
|
|
|
|
|
2015-02-05 19:31:02 +00:00
|
|
|
|
This option requires the third-party ``tblib`` package to display tracebacks
|
|
|
|
|
correctly:
|
|
|
|
|
|
|
|
|
|
.. code-block:: console
|
|
|
|
|
|
2019-04-14 15:02:36 +00:00
|
|
|
|
$ python -m pip install tblib
|
2015-02-05 19:31:02 +00:00
|
|
|
|
|
2015-09-10 13:41:26 +00:00
|
|
|
|
This feature isn't available on Windows. It doesn't work with the Oracle
|
|
|
|
|
database backend either.
|
2015-08-30 08:50:10 +00:00
|
|
|
|
|
2015-10-06 17:25:14 +00:00
|
|
|
|
If you want to use :mod:`pdb` while debugging tests, you must disable parallel
|
|
|
|
|
execution (``--parallel=1``). You'll see something like ``bdb.BdbQuit`` if you
|
|
|
|
|
don't.
|
|
|
|
|
|
2015-06-05 14:44:12 +00:00
|
|
|
|
.. warning::
|
|
|
|
|
|
|
|
|
|
When test parallelization is enabled and a test fails, Django may be
|
|
|
|
|
unable to display the exception traceback. This can make debugging
|
|
|
|
|
difficult. If you encounter this problem, run the affected test without
|
|
|
|
|
parallelization to see the traceback of the failure.
|
|
|
|
|
|
|
|
|
|
This is a known limitation. It arises from the need to serialize objects
|
|
|
|
|
in order to exchange them between processes. See
|
|
|
|
|
:ref:`python:pickle-picklable` for details.
|
|
|
|
|
|
2015-11-07 13:57:56 +00:00
|
|
|
|
.. option:: --tag TAGS
|
|
|
|
|
|
|
|
|
|
Runs only tests :ref:`marked with the specified tags <topics-tagging-tests>`.
|
|
|
|
|
May be specified multiple times and combined with :option:`test --exclude-tag`.
|
|
|
|
|
|
2021-03-26 12:14:43 +00:00
|
|
|
|
Tests that fail to load are always considered matching.
|
|
|
|
|
|
2015-11-07 13:57:56 +00:00
|
|
|
|
.. option:: --exclude-tag EXCLUDE_TAGS
|
|
|
|
|
|
|
|
|
|
Excludes tests :ref:`marked with the specified tags <topics-tagging-tests>`.
|
|
|
|
|
May be specified multiple times and combined with :option:`test --tag`.
|
|
|
|
|
|
2019-03-07 20:58:30 +00:00
|
|
|
|
.. django-admin-option:: -k TEST_NAME_PATTERNS
|
|
|
|
|
|
|
|
|
|
Runs test methods and classes matching test name patterns, in the same way as
|
|
|
|
|
:option:`unittest's -k option<unittest.-k>`. Can be specified multiple times.
|
|
|
|
|
|
2019-08-05 03:41:14 +00:00
|
|
|
|
.. django-admin-option:: --pdb
|
|
|
|
|
|
|
|
|
|
Spawns a ``pdb`` debugger at each test error or failure. If you have it
|
|
|
|
|
installed, ``ipdb`` is used instead.
|
2019-03-07 20:58:30 +00:00
|
|
|
|
|
2019-11-30 21:10:16 +00:00
|
|
|
|
.. django-admin-option:: --buffer, -b
|
|
|
|
|
|
|
|
|
|
Discards output (``stdout`` and ``stderr``) for passing tests, in the same way
|
|
|
|
|
as :option:`unittest's --buffer option<unittest.-b>`.
|
|
|
|
|
|
2020-05-06 17:52:12 +00:00
|
|
|
|
.. django-admin-option:: --no-faulthandler
|
|
|
|
|
|
|
|
|
|
Django automatically calls :func:`faulthandler.enable()` when starting the
|
|
|
|
|
tests, which allows it to print a traceback if the interpreter crashes. Pass
|
|
|
|
|
``--no-faulthandler`` to disable this behavior.
|
|
|
|
|
|
2020-07-22 15:37:52 +00:00
|
|
|
|
.. django-admin-option:: --timing
|
|
|
|
|
|
2020-08-18 04:28:30 +00:00
|
|
|
|
Outputs timings, including database setup and total run time.
|
2020-07-22 15:37:52 +00:00
|
|
|
|
|
2016-01-24 21:26:11 +00:00
|
|
|
|
``testserver``
|
|
|
|
|
--------------
|
2007-08-16 23:05:00 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin:: testserver [fixture [fixture ...]]
|
2009-11-12 13:58:32 +00:00
|
|
|
|
|
2013-11-18 18:25:28 +00:00
|
|
|
|
Runs a Django development server (as in :djadmin:`runserver`) using data from
|
|
|
|
|
the given fixture(s).
|
2007-08-16 23:05:00 +00:00
|
|
|
|
|
|
|
|
|
For example, this command::
|
|
|
|
|
|
2014-07-26 11:21:52 +00:00
|
|
|
|
django-admin testserver mydata.json
|
2007-08-16 23:05:00 +00:00
|
|
|
|
|
|
|
|
|
...would perform the following steps:
|
|
|
|
|
|
2018-11-15 18:54:28 +00:00
|
|
|
|
#. Create a test database, as described in :ref:`the-test-database`.
|
|
|
|
|
#. Populate the test database with fixture data from the given fixtures.
|
2013-11-18 18:25:28 +00:00
|
|
|
|
(For more on fixtures, see the documentation for :djadmin:`loaddata` above.)
|
2018-11-15 18:54:28 +00:00
|
|
|
|
#. Runs the Django development server (as in :djadmin:`runserver`), pointed at
|
2011-10-14 00:12:01 +00:00
|
|
|
|
this newly created test database instead of your production database.
|
2007-08-16 23:05:00 +00:00
|
|
|
|
|
|
|
|
|
This is useful in a number of ways:
|
|
|
|
|
|
2012-12-22 00:59:06 +00:00
|
|
|
|
* When you're writing :doc:`unit tests </topics/testing/overview>` of how your views
|
2011-10-14 00:12:01 +00:00
|
|
|
|
act with certain fixture data, you can use ``testserver`` to interact with
|
2021-07-23 06:48:16 +00:00
|
|
|
|
the views in a web browser, manually.
|
2007-08-16 23:05:00 +00:00
|
|
|
|
|
2011-10-14 00:12:01 +00:00
|
|
|
|
* Let's say you're developing your Django application and have a "pristine"
|
|
|
|
|
copy of a database that you'd like to interact with. You can dump your
|
2013-11-18 18:25:28 +00:00
|
|
|
|
database to a fixture (using the :djadmin:`dumpdata` command, explained
|
2021-07-23 06:48:16 +00:00
|
|
|
|
above), then use ``testserver`` to run your web application with that data.
|
2013-11-18 18:25:28 +00:00
|
|
|
|
With this arrangement, you have the flexibility of messing up your data
|
2011-10-14 00:12:01 +00:00
|
|
|
|
in any way, knowing that whatever data changes you're making are only
|
|
|
|
|
being made to a test database.
|
2007-08-16 23:05:00 +00:00
|
|
|
|
|
2007-09-14 19:17:15 +00:00
|
|
|
|
Note that this server does *not* automatically detect changes to your Python
|
2013-11-18 18:25:28 +00:00
|
|
|
|
source code (as :djadmin:`runserver` does). It does, however, detect changes to
|
2007-09-14 19:17:15 +00:00
|
|
|
|
templates.
|
2007-08-25 23:56:33 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --addrport ADDRPORT
|
2007-09-14 19:17:15 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Specifies a different port, or IP address and port, from the default of
|
|
|
|
|
``127.0.0.1:8000``. This value follows exactly the same format and serves
|
|
|
|
|
exactly the same function as the argument to the :djadmin:`runserver` command.
|
2007-09-14 19:17:15 +00:00
|
|
|
|
|
|
|
|
|
Examples:
|
|
|
|
|
|
|
|
|
|
To run the test server on port 7000 with ``fixture1`` and ``fixture2``::
|
|
|
|
|
|
2014-07-26 11:21:52 +00:00
|
|
|
|
django-admin testserver --addrport 7000 fixture1 fixture2
|
|
|
|
|
django-admin testserver fixture1 fixture2 --addrport 7000
|
2007-09-14 19:17:15 +00:00
|
|
|
|
|
|
|
|
|
(The above statements are equivalent. We include both of them to demonstrate
|
2007-09-16 16:01:25 +00:00
|
|
|
|
that it doesn't matter whether the options come before or after the fixture
|
|
|
|
|
arguments.)
|
2007-09-14 19:17:15 +00:00
|
|
|
|
|
2007-11-29 18:15:38 +00:00
|
|
|
|
To run on 1.2.3.4:7000 with a ``test`` fixture::
|
2007-09-14 19:17:15 +00:00
|
|
|
|
|
2014-07-26 11:21:52 +00:00
|
|
|
|
django-admin testserver --addrport 1.2.3.4:7000 test
|
2007-09-14 19:17:15 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --noinput, --no-input
|
|
|
|
|
|
|
|
|
|
Suppresses all user prompts. A typical prompt is a warning about deleting an
|
|
|
|
|
existing test database.
|
|
|
|
|
|
2010-10-23 16:37:51 +00:00
|
|
|
|
Commands provided by applications
|
|
|
|
|
=================================
|
|
|
|
|
|
|
|
|
|
Some commands are only available when the ``django.contrib`` application that
|
|
|
|
|
:doc:`implements </howto/custom-management-commands>` them has been
|
|
|
|
|
:setting:`enabled <INSTALLED_APPS>`. This section describes them grouped by
|
|
|
|
|
their application.
|
|
|
|
|
|
|
|
|
|
``django.contrib.auth``
|
|
|
|
|
-----------------------
|
|
|
|
|
|
2016-01-24 21:26:11 +00:00
|
|
|
|
``changepassword``
|
|
|
|
|
~~~~~~~~~~~~~~~~~~
|
2010-10-23 16:37:51 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin:: changepassword [<username>]
|
2010-10-23 16:37:51 +00:00
|
|
|
|
|
|
|
|
|
This command is only available if Django's :doc:`authentication system
|
2012-12-28 19:00:11 +00:00
|
|
|
|
</topics/auth/index>` (``django.contrib.auth``) is installed.
|
2010-10-23 16:37:51 +00:00
|
|
|
|
|
2015-05-07 23:41:42 +00:00
|
|
|
|
Allows changing a user's password. It prompts you to enter a new password twice
|
|
|
|
|
for the given user. If the entries are identical, this immediately becomes the
|
|
|
|
|
new password. If you do not supply a user, the command will attempt to change
|
|
|
|
|
the password whose username matches the current user.
|
2010-10-23 16:37:51 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --database DATABASE
|
|
|
|
|
|
|
|
|
|
Specifies the database to query for the user. Defaults to ``default``.
|
2012-03-05 04:17:55 +00:00
|
|
|
|
|
2010-10-23 16:37:51 +00:00
|
|
|
|
Example usage::
|
|
|
|
|
|
2014-07-26 11:21:52 +00:00
|
|
|
|
django-admin changepassword ringo
|
2010-10-23 16:37:51 +00:00
|
|
|
|
|
2016-01-24 21:26:11 +00:00
|
|
|
|
``createsuperuser``
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~
|
2010-10-23 16:37:51 +00:00
|
|
|
|
|
|
|
|
|
.. django-admin:: createsuperuser
|
|
|
|
|
|
2020-04-30 10:12:05 +00:00
|
|
|
|
.. envvar:: DJANGO_SUPERUSER_PASSWORD
|
|
|
|
|
|
2010-10-23 16:37:51 +00:00
|
|
|
|
This command is only available if Django's :doc:`authentication system
|
2012-12-28 19:00:11 +00:00
|
|
|
|
</topics/auth/index>` (``django.contrib.auth``) is installed.
|
2010-10-23 16:37:51 +00:00
|
|
|
|
|
|
|
|
|
Creates a superuser account (a user who has all permissions). This is
|
2014-06-10 16:22:07 +00:00
|
|
|
|
useful if you need to create an initial superuser account or if you need to
|
|
|
|
|
programmatically generate superuser accounts for your site(s).
|
2010-10-23 16:37:51 +00:00
|
|
|
|
|
|
|
|
|
When run interactively, this command will prompt for a password for
|
2019-06-21 21:38:27 +00:00
|
|
|
|
the new superuser account. When run non-interactively, you can provide
|
2020-04-30 10:12:05 +00:00
|
|
|
|
a password by setting the :envvar:`DJANGO_SUPERUSER_PASSWORD` environment
|
|
|
|
|
variable. Otherwise, no password will be set, and the superuser account will
|
|
|
|
|
not be able to log in until a password has been manually set for it.
|
2019-06-21 21:38:27 +00:00
|
|
|
|
|
|
|
|
|
In non-interactive mode, the
|
|
|
|
|
:attr:`~django.contrib.auth.models.CustomUser.USERNAME_FIELD` and required
|
|
|
|
|
fields (listed in
|
|
|
|
|
:attr:`~django.contrib.auth.models.CustomUser.REQUIRED_FIELDS`) fall back to
|
|
|
|
|
``DJANGO_SUPERUSER_<uppercase_field_name>`` environment variables, unless they
|
|
|
|
|
are overridden by a command line argument. For example, to provide an ``email``
|
|
|
|
|
field, you can use ``DJANGO_SUPERUSER_EMAIL`` environment variable.
|
|
|
|
|
|
2019-07-11 08:25:40 +00:00
|
|
|
|
.. django-admin-option:: --noinput, --no-input
|
|
|
|
|
|
|
|
|
|
Suppresses all user prompts. If a suppressed prompt cannot be resolved
|
|
|
|
|
automatically, the command will exit with error code 1.
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --username USERNAME
|
|
|
|
|
.. django-admin-option:: --email EMAIL
|
2010-10-23 16:37:51 +00:00
|
|
|
|
|
2011-04-01 16:10:22 +00:00
|
|
|
|
The username and email address for the new account can be supplied by
|
2010-10-23 16:37:51 +00:00
|
|
|
|
using the ``--username`` and ``--email`` arguments on the command
|
|
|
|
|
line. If either of those is not supplied, ``createsuperuser`` will prompt for
|
|
|
|
|
it when running interactively.
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --database DATABASE
|
|
|
|
|
|
|
|
|
|
Specifies the database into which the superuser object will be saved.
|
2012-03-05 04:17:55 +00:00
|
|
|
|
|
2014-07-03 18:30:17 +00:00
|
|
|
|
You can subclass the management command and override ``get_input_data()`` if you
|
|
|
|
|
want to customize data input and validation. Consult the source code for
|
|
|
|
|
details on the existing implementation and the method's parameters. For example,
|
|
|
|
|
it could be useful if you have a ``ForeignKey`` in
|
|
|
|
|
:attr:`~django.contrib.auth.models.CustomUser.REQUIRED_FIELDS` and want to
|
|
|
|
|
allow creating an instance instead of entering the primary key of an existing
|
|
|
|
|
instance.
|
|
|
|
|
|
2015-10-02 14:46:29 +00:00
|
|
|
|
``django.contrib.contenttypes``
|
|
|
|
|
-------------------------------
|
|
|
|
|
|
|
|
|
|
``remove_stale_contenttypes``
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
|
|
.. django-admin:: remove_stale_contenttypes
|
|
|
|
|
|
|
|
|
|
This command is only available if Django's :doc:`contenttypes app
|
|
|
|
|
</ref/contrib/contenttypes>` (:mod:`django.contrib.contenttypes`) is installed.
|
|
|
|
|
|
|
|
|
|
Deletes stale content types (from deleted models) in your database. Any objects
|
|
|
|
|
that depend on the deleted content types will also be deleted. A list of
|
|
|
|
|
deleted objects will be displayed before you confirm it's okay to proceed with
|
|
|
|
|
the deletion.
|
|
|
|
|
|
|
|
|
|
.. django-admin-option:: --database DATABASE
|
|
|
|
|
|
|
|
|
|
Specifies the database to use. Defaults to ``default``.
|
|
|
|
|
|
2020-03-11 19:14:50 +00:00
|
|
|
|
.. django-admin-option:: --include-stale-apps
|
|
|
|
|
|
|
|
|
|
Deletes stale content types including ones from previously installed apps that
|
|
|
|
|
have been removed from :setting:`INSTALLED_APPS`. Defaults to ``False``.
|
|
|
|
|
|
2010-10-23 16:37:51 +00:00
|
|
|
|
``django.contrib.gis``
|
|
|
|
|
----------------------
|
|
|
|
|
|
2016-01-24 21:26:11 +00:00
|
|
|
|
``ogrinspect``
|
|
|
|
|
~~~~~~~~~~~~~~
|
2010-10-23 16:37:51 +00:00
|
|
|
|
|
|
|
|
|
This command is only available if :doc:`GeoDjango </ref/contrib/gis/index>`
|
|
|
|
|
(``django.contrib.gis``) is installed.
|
|
|
|
|
|
|
|
|
|
Please refer to its :djadmin:`description <ogrinspect>` in the GeoDjango
|
|
|
|
|
documentation.
|
|
|
|
|
|
2012-10-27 09:49:46 +00:00
|
|
|
|
``django.contrib.sessions``
|
|
|
|
|
---------------------------
|
|
|
|
|
|
2016-01-24 21:26:11 +00:00
|
|
|
|
``clearsessions``
|
|
|
|
|
~~~~~~~~~~~~~~~~~
|
2012-10-27 09:49:46 +00:00
|
|
|
|
|
|
|
|
|
.. django-admin:: clearsessions
|
|
|
|
|
|
|
|
|
|
Can be run as a cron job or directly to clean out expired sessions.
|
|
|
|
|
|
2010-10-23 16:37:51 +00:00
|
|
|
|
``django.contrib.sitemaps``
|
|
|
|
|
---------------------------
|
|
|
|
|
|
2016-01-24 21:26:11 +00:00
|
|
|
|
``ping_google``
|
|
|
|
|
~~~~~~~~~~~~~~~
|
2010-10-23 16:37:51 +00:00
|
|
|
|
|
|
|
|
|
This command is only available if the :doc:`Sitemaps framework
|
|
|
|
|
</ref/contrib/sitemaps>` (``django.contrib.sitemaps``) is installed.
|
|
|
|
|
|
|
|
|
|
Please refer to its :djadmin:`description <ping_google>` in the Sitemaps
|
|
|
|
|
documentation.
|
|
|
|
|
|
|
|
|
|
``django.contrib.staticfiles``
|
|
|
|
|
------------------------------
|
|
|
|
|
|
2016-01-24 21:26:11 +00:00
|
|
|
|
``collectstatic``
|
|
|
|
|
~~~~~~~~~~~~~~~~~
|
2010-10-23 16:37:51 +00:00
|
|
|
|
|
|
|
|
|
This command is only available if the :doc:`static files application
|
2013-03-07 19:15:39 +00:00
|
|
|
|
</howto/static-files/index>` (``django.contrib.staticfiles``) is installed.
|
2010-10-23 16:37:51 +00:00
|
|
|
|
|
|
|
|
|
Please refer to its :djadmin:`description <collectstatic>` in the
|
|
|
|
|
:doc:`staticfiles </ref/contrib/staticfiles>` documentation.
|
|
|
|
|
|
2016-01-24 21:26:11 +00:00
|
|
|
|
``findstatic``
|
|
|
|
|
~~~~~~~~~~~~~~
|
2010-10-23 16:37:51 +00:00
|
|
|
|
|
|
|
|
|
This command is only available if the :doc:`static files application
|
2013-03-07 19:15:39 +00:00
|
|
|
|
</howto/static-files/index>` (``django.contrib.staticfiles``) is installed.
|
2010-10-23 16:37:51 +00:00
|
|
|
|
|
|
|
|
|
Please refer to its :djadmin:`description <findstatic>` in the :doc:`staticfiles
|
|
|
|
|
</ref/contrib/staticfiles>` documentation.
|
|
|
|
|
|
2007-09-09 21:57:59 +00:00
|
|
|
|
Default options
|
|
|
|
|
===============
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. program:: None
|
|
|
|
|
|
2010-10-23 16:37:51 +00:00
|
|
|
|
Although some commands may allow their own custom options, every command
|
2021-08-31 07:14:47 +00:00
|
|
|
|
allows for the following options by default:
|
2006-01-11 02:06:27 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --pythonpath PYTHONPATH
|
2005-10-06 17:22:23 +00:00
|
|
|
|
|
2005-10-06 17:27:13 +00:00
|
|
|
|
Adds the given filesystem path to the Python `import search path`_. If this
|
2020-04-30 10:12:05 +00:00
|
|
|
|
isn't provided, ``django-admin`` will use the :envvar:`PYTHONPATH` environment
|
2005-10-06 17:27:13 +00:00
|
|
|
|
variable.
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
This option is unnecessary in ``manage.py``, because it takes care of setting
|
|
|
|
|
the Python path for you.
|
2006-01-11 02:06:27 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Example usage::
|
2005-10-06 17:22:23 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
django-admin migrate --pythonpath='/home/djangoprojects/myproject'
|
2006-08-31 14:29:47 +00:00
|
|
|
|
|
2021-04-27 11:09:00 +00:00
|
|
|
|
.. _import search path: https://diveinto.org/python3/your-first-python-program.html#importsearchpath
|
2006-08-31 14:29:47 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --settings SETTINGS
|
2007-04-09 01:44:26 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Specifies the settings module to use. The settings module should be in Python
|
|
|
|
|
package syntax, e.g. ``mysite.settings``. If this isn't provided,
|
2020-04-30 10:12:05 +00:00
|
|
|
|
``django-admin`` will use the :envvar:`DJANGO_SETTINGS_MODULE` environment
|
|
|
|
|
variable.
|
2006-09-24 08:22:52 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
This option is unnecessary in ``manage.py``, because it uses
|
2008-02-15 11:38:53 +00:00
|
|
|
|
``settings.py`` from the current project by default.
|
2006-09-24 08:22:52 +00:00
|
|
|
|
|
2008-06-19 13:24:39 +00:00
|
|
|
|
Example usage::
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
django-admin migrate --settings=mysite.settings
|
2008-06-19 13:24:39 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --traceback
|
2013-03-09 11:38:45 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Displays a full stack trace when a :exc:`~django.core.management.CommandError`
|
2019-06-17 14:54:55 +00:00
|
|
|
|
is raised. By default, ``django-admin`` will show an error message when a
|
2016-01-12 01:59:34 +00:00
|
|
|
|
``CommandError`` occurs and a full stack trace for any other exception.
|
2008-10-02 12:57:13 +00:00
|
|
|
|
|
2021-08-31 07:14:47 +00:00
|
|
|
|
This option is ignored by :djadmin:`runserver`.
|
|
|
|
|
|
2008-10-02 12:57:13 +00:00
|
|
|
|
Example usage::
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
django-admin migrate --traceback
|
|
|
|
|
|
2017-03-28 14:38:00 +00:00
|
|
|
|
.. django-admin-option:: --verbosity {0,1,2,3}, -v {0,1,2,3}
|
2008-10-02 12:57:13 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Specifies the amount of notification and debug information that a command
|
|
|
|
|
should print to the console.
|
2008-10-02 12:57:13 +00:00
|
|
|
|
|
2011-10-14 00:12:01 +00:00
|
|
|
|
* ``0`` means no output.
|
|
|
|
|
* ``1`` means normal output (default).
|
|
|
|
|
* ``2`` means verbose output.
|
|
|
|
|
* ``3`` means *very* verbose output.
|
2008-10-02 12:57:13 +00:00
|
|
|
|
|
2021-08-31 07:14:47 +00:00
|
|
|
|
This option is ignored by :djadmin:`runserver`.
|
|
|
|
|
|
2013-02-23 15:28:45 +00:00
|
|
|
|
Example usage::
|
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
django-admin migrate --verbosity 2
|
2009-11-12 13:58:32 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
.. django-admin-option:: --no-color
|
2009-11-12 13:58:32 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Disables colorized command output. Some commands format their output to be
|
|
|
|
|
colorized. For example, errors will be printed to the console in red and SQL
|
|
|
|
|
statements will be syntax highlighted.
|
2015-09-07 13:17:55 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
Example usage::
|
2015-09-07 13:17:55 +00:00
|
|
|
|
|
2016-01-12 01:59:34 +00:00
|
|
|
|
django-admin runserver --no-color
|
2009-11-12 13:58:32 +00:00
|
|
|
|
|
2018-07-22 17:11:47 +00:00
|
|
|
|
.. django-admin-option:: --force-color
|
|
|
|
|
|
|
|
|
|
Forces colorization of the command output if it would otherwise be disabled
|
|
|
|
|
as discussed in :ref:`syntax-coloring`. For example, you may want to pipe
|
|
|
|
|
colored output to another command.
|
|
|
|
|
|
2019-04-26 23:37:57 +00:00
|
|
|
|
.. django-admin-option:: --skip-checks
|
|
|
|
|
|
|
|
|
|
Skips running system checks prior to running the command. This option is only
|
|
|
|
|
available if the
|
|
|
|
|
:attr:`~django.core.management.BaseCommand.requires_system_checks` command
|
2020-05-13 22:00:41 +00:00
|
|
|
|
attribute is not an empty list or tuple.
|
2019-04-26 23:37:57 +00:00
|
|
|
|
|
|
|
|
|
Example usage::
|
|
|
|
|
|
|
|
|
|
django-admin migrate --skip-checks
|
|
|
|
|
|
2006-05-02 01:31:56 +00:00
|
|
|
|
Extra niceties
|
|
|
|
|
==============
|
|
|
|
|
|
2009-12-28 06:48:47 +00:00
|
|
|
|
.. _syntax-coloring:
|
|
|
|
|
|
2006-05-02 01:31:56 +00:00
|
|
|
|
Syntax coloring
|
|
|
|
|
---------------
|
|
|
|
|
|
2020-04-30 10:12:05 +00:00
|
|
|
|
.. envvar:: DJANGO_COLORS
|
|
|
|
|
|
2014-07-26 11:21:52 +00:00
|
|
|
|
The ``django-admin`` / ``manage.py`` commands will use pretty
|
2010-02-23 13:22:05 +00:00
|
|
|
|
color-coded output if your terminal supports ANSI-colored output. It
|
|
|
|
|
won't use the color codes if you're piping the command's output to
|
2018-07-22 17:11:47 +00:00
|
|
|
|
another program unless the :option:`--force-color` option is used.
|
2009-12-28 06:48:47 +00:00
|
|
|
|
|
2020-11-11 13:27:10 +00:00
|
|
|
|
Windows support
|
|
|
|
|
~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
|
|
On Windows 10, the `Windows Terminal`_ application, `VS Code`_, and PowerShell
|
|
|
|
|
(where virtual terminal processing is enabled) allow colored output, and are
|
|
|
|
|
supported by default.
|
|
|
|
|
|
|
|
|
|
Under Windows, the legacy ``cmd.exe`` native console doesn't support ANSI
|
|
|
|
|
escape sequences so by default there is no color output. In this case either of
|
|
|
|
|
two third-party libraries are needed:
|
|
|
|
|
|
|
|
|
|
* Install colorama_, a Python package that translates ANSI color codes into
|
|
|
|
|
Windows API calls. Django commands will detect its presence and will make use
|
|
|
|
|
of its services to color output just like on Unix-based platforms.
|
|
|
|
|
``colorama`` can be installed via pip::
|
|
|
|
|
|
|
|
|
|
...\> py -m pip install colorama
|
|
|
|
|
|
|
|
|
|
* Install `ANSICON`_, a third-party tool that allows ``cmd.exe`` to process
|
|
|
|
|
ANSI color codes. Django commands will detect its presence and will make use
|
|
|
|
|
of its services to color output just like on Unix-based platforms.
|
|
|
|
|
|
|
|
|
|
Other modern terminal environments on Windows, that support terminal colors,
|
|
|
|
|
but which are not automatically detected as supported by Django, may "fake" the
|
|
|
|
|
installation of ``ANSICON`` by setting the appropriate environmental variable,
|
|
|
|
|
``ANSICON="on"``.
|
|
|
|
|
|
|
|
|
|
.. _`Windows Terminal`: https://www.microsoft.com/en-us/p/windows-terminal-preview/9n0dx20hk701
|
|
|
|
|
.. _`VS Code`: https://code.visualstudio.com
|
|
|
|
|
.. _ANSICON: http://adoxa.altervista.org/ansicon/
|
|
|
|
|
.. _colorama: https://pypi.org/project/colorama/
|
|
|
|
|
|
|
|
|
|
Custom colors
|
|
|
|
|
~~~~~~~~~~~~~
|
2013-12-03 02:11:59 +00:00
|
|
|
|
|
2009-12-28 06:48:47 +00:00
|
|
|
|
The colors used for syntax highlighting can be customized. Django
|
|
|
|
|
ships with three color palettes:
|
|
|
|
|
|
2011-10-14 00:12:01 +00:00
|
|
|
|
* ``dark``, suited to terminals that show white text on a black
|
|
|
|
|
background. This is the default palette.
|
2009-12-28 06:48:47 +00:00
|
|
|
|
|
2011-10-14 00:12:01 +00:00
|
|
|
|
* ``light``, suited to terminals that show black text on a white
|
|
|
|
|
background.
|
2009-12-28 06:48:47 +00:00
|
|
|
|
|
2011-10-14 00:12:01 +00:00
|
|
|
|
* ``nocolor``, which disables syntax highlighting.
|
2009-12-28 06:48:47 +00:00
|
|
|
|
|
2020-04-30 10:12:05 +00:00
|
|
|
|
You select a palette by setting a :envvar:`DJANGO_COLORS` environment
|
2009-12-28 06:48:47 +00:00
|
|
|
|
variable to specify the palette you want to use. For example, to
|
|
|
|
|
specify the ``light`` palette under a Unix or OS/X BASH shell, you
|
|
|
|
|
would run the following at a command prompt::
|
|
|
|
|
|
|
|
|
|
export DJANGO_COLORS="light"
|
|
|
|
|
|
|
|
|
|
You can also customize the colors that are used. Django specifies a
|
|
|
|
|
number of roles in which color is used:
|
|
|
|
|
|
2011-10-14 00:12:01 +00:00
|
|
|
|
* ``error`` - A major error.
|
|
|
|
|
* ``notice`` - A minor error.
|
2015-11-17 23:46:37 +00:00
|
|
|
|
* ``success`` - A success.
|
|
|
|
|
* ``warning`` - A warning.
|
2011-10-14 00:12:01 +00:00
|
|
|
|
* ``sql_field`` - The name of a model field in SQL.
|
|
|
|
|
* ``sql_coltype`` - The type of a model field in SQL.
|
2013-09-05 22:23:48 +00:00
|
|
|
|
* ``sql_keyword`` - An SQL keyword.
|
2011-10-14 00:12:01 +00:00
|
|
|
|
* ``sql_table`` - The name of a model in SQL.
|
|
|
|
|
* ``http_info`` - A 1XX HTTP Informational server response.
|
|
|
|
|
* ``http_success`` - A 2XX HTTP Success server response.
|
|
|
|
|
* ``http_not_modified`` - A 304 HTTP Not Modified server response.
|
|
|
|
|
* ``http_redirect`` - A 3XX HTTP Redirect server response other than 304.
|
|
|
|
|
* ``http_not_found`` - A 404 HTTP Not Found server response.
|
|
|
|
|
* ``http_bad_request`` - A 4XX HTTP Bad Request server response other than 404.
|
|
|
|
|
* ``http_server_error`` - A 5XX HTTP Server Error response.
|
2015-11-17 23:46:37 +00:00
|
|
|
|
* ``migrate_heading`` - A heading in a migrations management command.
|
|
|
|
|
* ``migrate_label`` - A migration name.
|
|
|
|
|
|
2009-12-28 06:48:47 +00:00
|
|
|
|
Each of these roles can be assigned a specific foreground and
|
|
|
|
|
background color, from the following list:
|
|
|
|
|
|
2011-10-14 00:12:01 +00:00
|
|
|
|
* ``black``
|
|
|
|
|
* ``red``
|
|
|
|
|
* ``green``
|
|
|
|
|
* ``yellow``
|
|
|
|
|
* ``blue``
|
|
|
|
|
* ``magenta``
|
|
|
|
|
* ``cyan``
|
|
|
|
|
* ``white``
|
2009-12-28 06:48:47 +00:00
|
|
|
|
|
|
|
|
|
Each of these colors can then be modified by using the following
|
|
|
|
|
display options:
|
|
|
|
|
|
2011-10-14 00:12:01 +00:00
|
|
|
|
* ``bold``
|
|
|
|
|
* ``underscore``
|
|
|
|
|
* ``blink``
|
|
|
|
|
* ``reverse``
|
|
|
|
|
* ``conceal``
|
2009-12-28 06:48:47 +00:00
|
|
|
|
|
2011-02-14 23:18:30 +00:00
|
|
|
|
A color specification follows one of the following patterns:
|
2009-12-28 06:48:47 +00:00
|
|
|
|
|
2011-10-14 00:12:01 +00:00
|
|
|
|
* ``role=fg``
|
|
|
|
|
* ``role=fg/bg``
|
|
|
|
|
* ``role=fg,option,option``
|
|
|
|
|
* ``role=fg/bg,option,option``
|
2009-12-28 06:48:47 +00:00
|
|
|
|
|
|
|
|
|
where ``role`` is the name of a valid color role, ``fg`` is the
|
|
|
|
|
foreground color, ``bg`` is the background color and each ``option``
|
|
|
|
|
is one of the color modifying options. Multiple color specifications
|
2015-05-07 23:41:42 +00:00
|
|
|
|
are then separated by a semicolon. For example::
|
2009-12-28 06:48:47 +00:00
|
|
|
|
|
|
|
|
|
export DJANGO_COLORS="error=yellow/blue,blink;notice=magenta"
|
|
|
|
|
|
|
|
|
|
would specify that errors be displayed using blinking yellow on blue,
|
|
|
|
|
and notices displayed using magenta. All other color roles would be
|
|
|
|
|
left uncolored.
|
|
|
|
|
|
|
|
|
|
Colors can also be specified by extending a base palette. If you put
|
|
|
|
|
a palette name in a color specification, all the colors implied by that
|
|
|
|
|
palette will be loaded. So::
|
|
|
|
|
|
|
|
|
|
export DJANGO_COLORS="light;error=yellow/blue,blink;notice=magenta"
|
|
|
|
|
|
|
|
|
|
would specify the use of all the colors in the light color palette,
|
|
|
|
|
*except* for the colors for errors and notices which would be
|
|
|
|
|
overridden as specified.
|
2006-05-02 01:31:56 +00:00
|
|
|
|
|
|
|
|
|
Bash completion
|
|
|
|
|
---------------
|
|
|
|
|
|
|
|
|
|
If you use the Bash shell, consider installing the Django bash completion
|
2022-06-30 12:08:49 +00:00
|
|
|
|
script, which lives in :source:`extras/django_bash_completion` in the Django source
|
2014-07-26 11:21:52 +00:00
|
|
|
|
distribution. It enables tab-completion of ``django-admin`` and
|
2006-05-02 01:31:56 +00:00
|
|
|
|
``manage.py`` commands, so you can, for instance...
|
|
|
|
|
|
2014-07-26 11:21:52 +00:00
|
|
|
|
* Type ``django-admin``.
|
2011-10-14 00:12:01 +00:00
|
|
|
|
* Press [TAB] to see all available options.
|
|
|
|
|
* Type ``sql``, then [TAB], to see all available options whose names start
|
|
|
|
|
with ``sql``.
|
2007-09-21 16:19:20 +00:00
|
|
|
|
|
2010-08-19 19:27:44 +00:00
|
|
|
|
See :doc:`/howto/custom-management-commands` for how to add customized actions.
|
2010-12-04 20:58:07 +00:00
|
|
|
|
|
2022-02-08 11:38:43 +00:00
|
|
|
|
Black formatting
|
|
|
|
|
----------------
|
|
|
|
|
|
|
|
|
|
.. versionadded:: 4.1
|
|
|
|
|
|
|
|
|
|
The Python files created by :djadmin:`startproject`, :djadmin:`startapp`,
|
2022-01-01 22:33:08 +00:00
|
|
|
|
:djadmin:`optimizemigration`, :djadmin:`makemigrations`, and
|
|
|
|
|
:djadmin:`squashmigrations` are formatted using the ``black`` command if it is
|
|
|
|
|
present on your ``PATH``.
|
2022-02-08 11:38:43 +00:00
|
|
|
|
|
|
|
|
|
If you have ``black`` globally installed, but do not wish it used for the
|
|
|
|
|
current project, you can set the ``PATH`` explicitly::
|
|
|
|
|
|
|
|
|
|
PATH=path/to/venv/bin django-admin makemigrations
|
|
|
|
|
|
|
|
|
|
For commands using ``stdout`` you can pipe the output to ``black`` if needed::
|
|
|
|
|
|
|
|
|
|
django-admin inspectdb | black -
|
|
|
|
|
|
2010-12-04 20:58:07 +00:00
|
|
|
|
==========================================
|
|
|
|
|
Running management commands from your code
|
|
|
|
|
==========================================
|
|
|
|
|
|
|
|
|
|
.. function:: django.core.management.call_command(name, *args, **options)
|
|
|
|
|
|
|
|
|
|
To call a management command from code use ``call_command``.
|
|
|
|
|
|
|
|
|
|
``name``
|
2016-03-03 01:12:56 +00:00
|
|
|
|
the name of the command to call or a command object. Passing the name is
|
|
|
|
|
preferred unless the object is required for testing.
|
2010-12-04 20:58:07 +00:00
|
|
|
|
|
|
|
|
|
``*args``
|
2016-03-12 22:44:08 +00:00
|
|
|
|
a list of arguments accepted by the command. Arguments are passed to the
|
|
|
|
|
argument parser, so you can use the same style as you would on the command
|
2017-05-30 21:15:20 +00:00
|
|
|
|
line. For example, ``call_command('flush', '--verbosity=0')``.
|
2010-12-04 20:58:07 +00:00
|
|
|
|
|
|
|
|
|
``**options``
|
2016-03-12 22:44:08 +00:00
|
|
|
|
named options accepted on the command-line. Options are passed to the command
|
|
|
|
|
without triggering the argument parser, which means you'll need to pass the
|
|
|
|
|
correct type. For example, ``call_command('flush', verbosity=0)`` (zero must
|
|
|
|
|
be an integer rather than a string).
|
2010-12-04 20:58:07 +00:00
|
|
|
|
|
|
|
|
|
Examples::
|
|
|
|
|
|
|
|
|
|
from django.core import management
|
2016-03-03 01:12:56 +00:00
|
|
|
|
from django.core.management.commands import loaddata
|
|
|
|
|
|
2010-12-04 20:58:07 +00:00
|
|
|
|
management.call_command('flush', verbosity=0, interactive=False)
|
|
|
|
|
management.call_command('loaddata', 'test_data', verbosity=0)
|
2016-03-03 01:12:56 +00:00
|
|
|
|
management.call_command(loaddata.Command(), 'test_data', verbosity=0)
|
2012-11-07 17:31:14 +00:00
|
|
|
|
|
2013-09-10 12:39:51 +00:00
|
|
|
|
Note that command options that take no arguments are passed as keywords
|
2014-08-09 19:03:19 +00:00
|
|
|
|
with ``True`` or ``False``, as you can see with the ``interactive`` option above.
|
2013-09-10 12:39:51 +00:00
|
|
|
|
|
2014-08-09 19:03:19 +00:00
|
|
|
|
Named arguments can be passed by using either one of the following syntaxes::
|
|
|
|
|
|
|
|
|
|
# Similar to the command line
|
2015-01-18 01:14:45 +00:00
|
|
|
|
management.call_command('dumpdata', '--natural-foreign')
|
2014-08-09 19:03:19 +00:00
|
|
|
|
|
|
|
|
|
# Named argument similar to the command line minus the initial dashes and
|
|
|
|
|
# with internal dashes replaced by underscores
|
2015-01-18 01:14:45 +00:00
|
|
|
|
management.call_command('dumpdata', natural_foreign=True)
|
2014-08-09 19:03:19 +00:00
|
|
|
|
|
2015-01-18 01:14:45 +00:00
|
|
|
|
# `use_natural_foreign_keys` is the option destination variable
|
|
|
|
|
management.call_command('dumpdata', use_natural_foreign_keys=True)
|
2013-09-10 12:39:51 +00:00
|
|
|
|
|
2017-01-27 21:12:45 +00:00
|
|
|
|
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()``.
|
|
|
|
|
|
2013-09-10 12:39:51 +00:00
|
|
|
|
Command options which take multiple options are passed a list::
|
|
|
|
|
|
|
|
|
|
management.call_command('dumpdata', exclude=['contenttypes', 'auth'])
|
|
|
|
|
|
2016-02-13 17:14:36 +00:00
|
|
|
|
The return value of the ``call_command()`` function is the same as the return
|
|
|
|
|
value of the ``handle()`` method of the command.
|
|
|
|
|
|
2012-11-07 17:31:14 +00:00
|
|
|
|
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::
|
|
|
|
|
|
2019-05-06 13:39:48 +00:00
|
|
|
|
with open('/path/to/command_output', 'w') as f:
|
2012-11-07 17:31:14 +00:00
|
|
|
|
management.call_command('dumpdata', stdout=f)
|