2006-05-02 09:31:56 +08:00
|
|
|
|
=============================
|
|
|
|
|
django-admin.py and manage.py
|
|
|
|
|
=============================
|
2005-08-11 04:24:51 +08:00
|
|
|
|
|
|
|
|
|
``django-admin.py`` is Django's command-line utility for administrative tasks.
|
|
|
|
|
This document outlines all it can do.
|
|
|
|
|
|
2006-01-11 10:06:27 +08:00
|
|
|
|
In addition, ``manage.py`` is automatically created in each Django project.
|
|
|
|
|
``manage.py`` is a thin wrapper around ``django-admin.py`` that takes care of
|
2006-01-11 12:56:24 +08:00
|
|
|
|
two things for you before delegating to ``django-admin.py``:
|
2006-01-11 10:06:27 +08:00
|
|
|
|
|
2011-10-14 08:12:01 +08:00
|
|
|
|
* It puts your project's package on ``sys.path``.
|
2006-01-11 10:06:27 +08:00
|
|
|
|
|
2011-10-14 08:12:01 +08:00
|
|
|
|
* It sets the :envvar:`DJANGO_SETTINGS_MODULE` environment variable so that
|
|
|
|
|
it points to your project's ``settings.py`` file.
|
2006-01-11 10:06:27 +08:00
|
|
|
|
|
2006-05-02 09:31:56 +08:00
|
|
|
|
The ``django-admin.py`` script should be on your system path if you installed
|
2008-08-24 06:25:40 +08:00
|
|
|
|
Django via its ``setup.py`` utility. If it's not on your path, you can find it
|
|
|
|
|
in ``site-packages/django/bin`` within your Python installation. Consider
|
2007-02-10 17:07:54 +08:00
|
|
|
|
symlinking it from some place on your path, such as ``/usr/local/bin``.
|
|
|
|
|
|
2008-08-24 06:25:40 +08:00
|
|
|
|
For Windows users, who do not have symlinking functionality available, you can
|
|
|
|
|
copy ``django-admin.py`` to a location on your existing path or edit the
|
|
|
|
|
``PATH`` settings (under ``Settings - Control Panel - System - Advanced -
|
|
|
|
|
Environment...``) to point to its installed location.
|
2006-05-02 09:31:56 +08:00
|
|
|
|
|
2006-01-11 10:06:27 +08:00
|
|
|
|
Generally, when working on a single Django project, it's easier to use
|
2013-04-12 18:10:26 +08:00
|
|
|
|
``manage.py`` than ``django-admin.py``. If you need to switch between multiple
|
|
|
|
|
Django settings files, use ``django-admin.py`` with
|
|
|
|
|
:envvar:`DJANGO_SETTINGS_MODULE` or the :djadminopt:`--settings` command line
|
|
|
|
|
option.
|
2006-01-11 10:06:27 +08:00
|
|
|
|
|
2007-04-09 09:44:26 +08:00
|
|
|
|
The command-line examples throughout this document use ``django-admin.py`` to
|
|
|
|
|
be consistent, but any example can use ``manage.py`` just as well.
|
|
|
|
|
|
2005-08-11 04:24:51 +08:00
|
|
|
|
Usage
|
|
|
|
|
=====
|
|
|
|
|
|
2008-08-24 06:25:40 +08:00
|
|
|
|
.. code-block:: bash
|
2006-01-11 13:54:13 +08:00
|
|
|
|
|
2010-10-24 00:37:51 +08:00
|
|
|
|
django-admin.py <command> [options]
|
|
|
|
|
manage.py <command> [options]
|
2005-08-11 04:24:51 +08:00
|
|
|
|
|
2010-10-24 00:37:51 +08:00
|
|
|
|
``command`` should be one of the commands listed in this document.
|
2007-09-10 05:57:59 +08:00
|
|
|
|
``options``, which is optional, should be zero or more of the options available
|
2010-10-24 00:37:51 +08:00
|
|
|
|
for the given command.
|
2005-08-11 04:24:51 +08:00
|
|
|
|
|
2007-09-10 05:57:59 +08:00
|
|
|
|
Getting runtime help
|
|
|
|
|
--------------------
|
2005-08-11 04:24:51 +08:00
|
|
|
|
|
2012-02-08 02:46:29 +08:00
|
|
|
|
.. django-admin:: help
|
2008-08-24 06:25:40 +08:00
|
|
|
|
|
2012-02-08 02:46:29 +08:00
|
|
|
|
Run ``django-admin.py help`` to display usage information and a list of the
|
|
|
|
|
commands provided by each application.
|
|
|
|
|
|
|
|
|
|
Run ``django-admin.py help --commands`` to display a list of all available
|
|
|
|
|
commands.
|
|
|
|
|
|
|
|
|
|
Run ``django-admin.py help <command>`` to display a description of the given
|
|
|
|
|
command and a list of its available options.
|
2007-09-10 05:57:59 +08:00
|
|
|
|
|
|
|
|
|
App names
|
|
|
|
|
---------
|
|
|
|
|
|
2010-10-24 00:37:51 +08:00
|
|
|
|
Many commands take a list of "app names." An "app name" is the basename of
|
2011-05-30 01:41:04 +08:00
|
|
|
|
the package containing your models. For example, if your :setting:`INSTALLED_APPS`
|
2007-09-10 05:57:59 +08:00
|
|
|
|
contains the string ``'mysite.blog'``, the app name is ``blog``.
|
|
|
|
|
|
|
|
|
|
Determining the version
|
|
|
|
|
-----------------------
|
2005-08-11 04:24:51 +08:00
|
|
|
|
|
2012-02-08 02:46:29 +08:00
|
|
|
|
.. django-admin:: version
|
2008-08-24 06:25:40 +08:00
|
|
|
|
|
2012-02-08 02:46:29 +08:00
|
|
|
|
Run ``django-admin.py version`` to display the current Django version.
|
2007-09-10 05:57:59 +08:00
|
|
|
|
|
2012-02-09 16:37:33 +08:00
|
|
|
|
The output follows the schema described in :pep:`386`::
|
2007-09-10 05:57:59 +08:00
|
|
|
|
|
2012-02-09 16:37:33 +08:00
|
|
|
|
1.4.dev17026
|
|
|
|
|
1.4a1
|
|
|
|
|
1.4
|
2007-09-10 05:57:59 +08:00
|
|
|
|
|
2008-08-24 06:25:40 +08:00
|
|
|
|
Displaying debug output
|
|
|
|
|
-----------------------
|
|
|
|
|
|
2009-11-12 21:58:32 +08:00
|
|
|
|
Use :djadminopt:`--verbosity` to specify the amount of notification and debug information
|
2008-10-02 20:57:13 +08:00
|
|
|
|
that ``django-admin.py`` should print to the console. For more details, see the
|
2009-11-12 21:58:32 +08:00
|
|
|
|
documentation for the :djadminopt:`--verbosity` option.
|
2008-08-24 06:25:40 +08:00
|
|
|
|
|
2010-10-24 00:37:51 +08:00
|
|
|
|
Available commands
|
|
|
|
|
==================
|
2007-09-10 05:57:59 +08:00
|
|
|
|
|
2013-07-13 00:48:49 +08:00
|
|
|
|
check
|
|
|
|
|
-----
|
2013-06-15 07:02:29 +08:00
|
|
|
|
|
2013-07-13 00:48:49 +08:00
|
|
|
|
.. django-admin:: check
|
2013-06-15 07:02:29 +08:00
|
|
|
|
|
2013-06-16 01:14:30 +08:00
|
|
|
|
.. versionadded:: 1.6
|
|
|
|
|
|
2013-06-15 07:02:29 +08:00
|
|
|
|
Performs a series of checks to verify a given setup (settings/application code)
|
|
|
|
|
is compatible with the current version of Django.
|
|
|
|
|
|
|
|
|
|
Upon finding things that are incompatible or require notifying the user, it
|
|
|
|
|
issues a series of warnings.
|
|
|
|
|
|
2008-07-06 14:39:44 +08:00
|
|
|
|
compilemessages
|
|
|
|
|
---------------
|
|
|
|
|
|
2009-11-12 21:58:32 +08:00
|
|
|
|
.. django-admin:: compilemessages
|
|
|
|
|
|
2008-07-06 14:39:44 +08:00
|
|
|
|
Compiles .po files created with ``makemessages`` to .mo files for use with
|
2010-08-20 03:27:44 +08:00
|
|
|
|
the builtin gettext support. See :doc:`/topics/i18n/index`.
|
2008-07-06 14:39:44 +08:00
|
|
|
|
|
2012-06-07 17:23:25 +08:00
|
|
|
|
Use the :djadminopt:`--locale` option (or its shorter version ``-l``) to
|
|
|
|
|
specify the locale(s) to process. If not provided, all locales are processed.
|
2008-07-06 14:39:44 +08:00
|
|
|
|
|
|
|
|
|
Example usage::
|
|
|
|
|
|
2012-06-07 23:24:48 +08:00
|
|
|
|
django-admin.py compilemessages --locale=pt_BR
|
2012-06-07 17:23:25 +08:00
|
|
|
|
django-admin.py compilemessages --locale=pt_BR --locale=fr
|
|
|
|
|
django-admin.py compilemessages -l pt_BR
|
|
|
|
|
django-admin.py compilemessages -l pt_BR -l fr
|
|
|
|
|
django-admin.py compilemessages --locale=pt_BR,fr
|
|
|
|
|
django-admin.py compilemessages -l pt_BR,fr
|
|
|
|
|
|
|
|
|
|
.. versionchanged:: 1.6
|
|
|
|
|
|
2013-03-25 13:53:48 +08:00
|
|
|
|
Added the ability to specify multiple locales.
|
2008-07-06 14:39:44 +08:00
|
|
|
|
|
2008-10-02 20:57:13 +08:00
|
|
|
|
createcachetable
|
2008-08-24 06:25:40 +08:00
|
|
|
|
----------------
|
2005-09-26 06:03:30 +08:00
|
|
|
|
|
2009-11-12 21:58:32 +08:00
|
|
|
|
.. django-admin:: createcachetable
|
2005-09-26 06:03:30 +08:00
|
|
|
|
|
2008-08-24 06:25:40 +08:00
|
|
|
|
Creates a cache table named ``tablename`` for use with the database cache
|
2010-08-20 03:27:44 +08:00
|
|
|
|
backend. See :doc:`/topics/cache` for more information.
|
2005-09-26 06:03:30 +08:00
|
|
|
|
|
2009-12-22 23:18:51 +08:00
|
|
|
|
The :djadminopt:`--database` option can be used to specify the database
|
|
|
|
|
onto which the cachetable will be installed.
|
|
|
|
|
|
2008-06-11 12:34:03 +08:00
|
|
|
|
dbshell
|
|
|
|
|
-------
|
|
|
|
|
|
2008-08-24 06:25:40 +08:00
|
|
|
|
.. django-admin:: dbshell
|
|
|
|
|
|
2008-06-11 12:34:03 +08:00
|
|
|
|
Runs the command-line client for the database engine specified in your
|
2009-12-22 23:18:51 +08:00
|
|
|
|
``ENGINE`` setting, with the connection parameters specified in your
|
2011-05-30 01:41:04 +08:00
|
|
|
|
:setting:`USER`, :setting:`PASSWORD`, etc., settings.
|
2008-06-11 12:34:03 +08:00
|
|
|
|
|
2011-10-14 08:12:01 +08: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.
|
2008-06-11 12:34:03 +08:00
|
|
|
|
|
|
|
|
|
This command assumes the programs are on your ``PATH`` so that a simple call to
|
|
|
|
|
the program name (``psql``, ``mysql``, ``sqlite3``) will find the program in
|
|
|
|
|
the right place. There's no way to specify the location of the program
|
|
|
|
|
manually.
|
|
|
|
|
|
2009-12-22 23:18:51 +08:00
|
|
|
|
The :djadminopt:`--database` option can be used to specify the database
|
|
|
|
|
onto which to open a shell.
|
|
|
|
|
|
2006-05-02 09:31:56 +08:00
|
|
|
|
diffsettings
|
|
|
|
|
------------
|
2005-08-11 04:24:51 +08:00
|
|
|
|
|
2008-08-24 06:25:40 +08:00
|
|
|
|
.. django-admin:: diffsettings
|
|
|
|
|
|
2006-05-02 09:31:56 +08:00
|
|
|
|
Displays differences between the current settings file and Django's default
|
2008-10-02 20:57:13 +08:00
|
|
|
|
settings.
|
2005-08-11 04:24:51 +08:00
|
|
|
|
|
2006-05-02 09:31:56 +08:00
|
|
|
|
Settings that don't appear in the defaults are followed by ``"###"``. For
|
2011-05-30 01:41:04 +08: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-11 04:24:51 +08:00
|
|
|
|
|
2013-03-18 03:48:30 +08:00
|
|
|
|
The :djadminopt:`--all` option may be provided to display all settings, even
|
|
|
|
|
if they have Django's default value. Such settings are prefixed by ``"###"``.
|
|
|
|
|
|
|
|
|
|
.. versionadded:: 1.6
|
2013-03-25 13:53:48 +08:00
|
|
|
|
|
2013-03-18 03:48:30 +08:00
|
|
|
|
The :djadminopt:`--all` option was added.
|
2006-05-02 09:31:56 +08:00
|
|
|
|
|
2009-11-12 21:58:32 +08:00
|
|
|
|
dumpdata <appname appname appname.Model ...>
|
|
|
|
|
--------------------------------------------
|
2008-08-24 06:25:40 +08:00
|
|
|
|
|
2009-11-12 21:58:32 +08:00
|
|
|
|
.. django-admin:: dumpdata
|
2007-03-01 21:11:08 +08:00
|
|
|
|
|
2007-09-10 05:57:59 +08:00
|
|
|
|
Outputs to standard output all data in the database associated with the named
|
2007-03-01 21:11:08 +08:00
|
|
|
|
application(s).
|
|
|
|
|
|
|
|
|
|
If no application name is provided, all installed applications will be dumped.
|
|
|
|
|
|
2007-04-09 09:44:26 +08:00
|
|
|
|
The output of ``dumpdata`` can be used as input for ``loaddata``.
|
2007-03-01 21:11:08 +08:00
|
|
|
|
|
2007-12-17 19:11:34 +08:00
|
|
|
|
Note that ``dumpdata`` uses the default manager on the model for selecting the
|
2008-08-24 06:25:40 +08: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 17:09:08 +08:00
|
|
|
|
|
2010-08-30 19:58:26 +08:00
|
|
|
|
The :djadminopt:`--all` option may be provided to specify that
|
|
|
|
|
``dumpdata`` should use Django's base manager, dumping records which
|
|
|
|
|
might otherwise be filtered or modified by a custom manager.
|
|
|
|
|
|
2008-08-24 06:25:40 +08:00
|
|
|
|
.. django-admin-option:: --format <fmt>
|
2007-09-10 05:57:59 +08:00
|
|
|
|
|
2009-11-12 21:58:32 +08:00
|
|
|
|
By default, ``dumpdata`` will format its output in JSON, but you can use the
|
|
|
|
|
``--format`` option to specify another format. Currently supported formats
|
|
|
|
|
are listed in :ref:`serialization-formats`.
|
2007-09-10 05:57:59 +08:00
|
|
|
|
|
2008-08-24 06:25:40 +08:00
|
|
|
|
.. django-admin-option:: --indent <num>
|
2007-09-10 05:57:59 +08:00
|
|
|
|
|
2009-11-12 21:58:32 +08:00
|
|
|
|
By default, ``dumpdata`` will output all data on a single line. This isn't
|
|
|
|
|
easy for humans to read, so you can use the ``--indent`` option to
|
|
|
|
|
pretty-print the output with a number of indentation spaces.
|
2007-09-10 05:57:59 +08:00
|
|
|
|
|
2009-12-22 23:18:51 +08:00
|
|
|
|
The :djadminopt:`--exclude` option may be provided to prevent specific
|
2012-09-20 04:39:14 +08:00
|
|
|
|
applications or models (specified as in the form of ``appname.ModelName``) from
|
|
|
|
|
being dumped. If you specify a model name to ``dumpdata``, the dumped output
|
|
|
|
|
will be restricted to that model, rather than the entire application. You can
|
|
|
|
|
also mix application names and model names.
|
2009-02-28 13:35:22 +08:00
|
|
|
|
|
2009-12-22 23:18:51 +08:00
|
|
|
|
The :djadminopt:`--database` option can be used to specify the database
|
2012-04-07 02:55:42 +08:00
|
|
|
|
from which data will be dumped.
|
2009-12-22 23:18:51 +08:00
|
|
|
|
|
2009-12-14 20:39:20 +08:00
|
|
|
|
.. django-admin-option:: --natural
|
|
|
|
|
|
|
|
|
|
Use :ref:`natural keys <topics-serialization-natural-keys>` to represent
|
|
|
|
|
any foreign key and many-to-many relationship with a model that provides
|
|
|
|
|
a natural key definition. If you are dumping ``contrib.auth`` ``Permission``
|
|
|
|
|
objects or ``contrib.contenttypes`` ``ContentType`` objects, you should
|
|
|
|
|
probably be using this flag.
|
|
|
|
|
|
2013-05-19 18:39:14 +08:00
|
|
|
|
.. versionadded:: 1.6
|
|
|
|
|
|
|
|
|
|
.. django-admin-option:: --pks
|
|
|
|
|
|
|
|
|
|
By default, ``dumpdata`` will output all the records of the model, but
|
2013-07-28 09:45:25 +08:00
|
|
|
|
you can use the ``--pks`` option to specify a comma separated list of
|
2013-05-19 18:39:14 +08:00
|
|
|
|
primary keys on which to filter. This is only available when dumping
|
|
|
|
|
one model.
|
|
|
|
|
|
2007-03-01 21:11:08 +08:00
|
|
|
|
flush
|
|
|
|
|
-----
|
|
|
|
|
|
2009-11-12 21:58:32 +08:00
|
|
|
|
.. django-admin:: flush
|
2008-08-24 06:25:40 +08:00
|
|
|
|
|
2012-06-21 08:03:06 +08:00
|
|
|
|
Returns the database to the state it was in immediately after :djadmin:`syncdb`
|
|
|
|
|
was executed. This means that all data will be removed from the database, any
|
2007-03-01 21:11:08 +08:00
|
|
|
|
post-synchronization handlers will be re-executed, and the ``initial_data``
|
|
|
|
|
fixture will be re-installed.
|
|
|
|
|
|
2009-11-12 21:58:32 +08:00
|
|
|
|
The :djadminopt:`--noinput` option may be provided to suppress all user
|
|
|
|
|
prompts.
|
2007-09-10 05:57:59 +08:00
|
|
|
|
|
2009-12-22 23:18:51 +08:00
|
|
|
|
The :djadminopt:`--database` option may be used to specify the database
|
|
|
|
|
to flush.
|
|
|
|
|
|
2013-08-05 08:29:55 +08:00
|
|
|
|
``--no-initial-data``
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~
|
2012-06-05 22:46:15 +08:00
|
|
|
|
|
|
|
|
|
.. versionadded:: 1.5
|
|
|
|
|
|
|
|
|
|
Use ``--no-initial-data`` to avoid loading the initial_data fixture.
|
|
|
|
|
|
|
|
|
|
|
2006-05-02 09:31:56 +08:00
|
|
|
|
inspectdb
|
|
|
|
|
---------
|
|
|
|
|
|
2009-11-12 21:58:32 +08:00
|
|
|
|
.. django-admin:: inspectdb
|
|
|
|
|
|
2006-05-02 09:31:56 +08:00
|
|
|
|
Introspects the database tables in the database pointed-to by the
|
2011-05-30 01:41:04 +08:00
|
|
|
|
:setting:`NAME` setting and outputs a Django model module (a ``models.py``
|
2006-05-02 09:31:56 +08:00
|
|
|
|
file) to standard output.
|
2005-08-11 04:24:51 +08:00
|
|
|
|
|
|
|
|
|
Use this if you have a legacy database with which you'd like to use Django.
|
|
|
|
|
The script will inspect the database and create a model for each table within
|
|
|
|
|
it.
|
|
|
|
|
|
2006-02-05 04:08:30 +08:00
|
|
|
|
As you might expect, the created models will have an attribute for every field
|
|
|
|
|
in the table. Note that ``inspectdb`` has a few special cases in its field-name
|
|
|
|
|
output:
|
|
|
|
|
|
2011-10-14 08:12:01 +08: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
|
|
|
|
|
model.
|
2006-02-05 04:08:30 +08:00
|
|
|
|
|
2011-10-14 08:12:01 +08: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-05 04:08:30 +08:00
|
|
|
|
|
2005-08-11 04:24:51 +08: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-19 05:26:28 +08:00
|
|
|
|
customizations. In particular, you'll need to rearrange models' order, so that
|
|
|
|
|
models that refer to other models are ordered properly.
|
2005-08-11 04:24:51 +08:00
|
|
|
|
|
2006-07-07 12:06:00 +08:00
|
|
|
|
Primary keys are automatically introspected for PostgreSQL, MySQL and
|
|
|
|
|
SQLite, in which case Django puts in the ``primary_key=True`` where
|
|
|
|
|
needed.
|
2005-08-11 04:24:51 +08:00
|
|
|
|
|
2005-11-29 10:05:32 +08:00
|
|
|
|
``inspectdb`` works with PostgreSQL, MySQL and SQLite. Foreign-key detection
|
2006-05-02 09:31:56 +08:00
|
|
|
|
only works in PostgreSQL and with certain types of MySQL tables.
|
2005-08-11 04:24:51 +08:00
|
|
|
|
|
2013-02-03 08:08:45 +08:00
|
|
|
|
If your plan is that your Django application(s) modify data (i.e. edit, remove
|
|
|
|
|
records and create new ones) in the existing database tables corresponding to
|
|
|
|
|
any of the introspected models then one of the manual review and edit steps
|
|
|
|
|
you need to perform on the resulting ``models.py`` file is to change the
|
|
|
|
|
Python declaration of each one of these models to specify it is a
|
|
|
|
|
:attr:`managed <django.db.models.Options.managed>` one.
|
|
|
|
|
|
2013-07-18 18:26:32 +08:00
|
|
|
|
This serves as an explicit opt-in to give your nascent Django project write
|
2013-02-03 08:08:45 +08:00
|
|
|
|
access to your precious data on a model by model basis.
|
|
|
|
|
|
2009-12-22 23:18:51 +08:00
|
|
|
|
The :djadminopt:`--database` option may be used to specify the
|
|
|
|
|
database to introspect.
|
|
|
|
|
|
2013-02-03 08:08:45 +08:00
|
|
|
|
.. versionchanged:: 1.6
|
|
|
|
|
|
2013-03-25 13:53:48 +08:00
|
|
|
|
The behavior by which introspected models are created as unmanaged ones is new
|
|
|
|
|
in Django 1.6.
|
2013-02-03 08:08:45 +08:00
|
|
|
|
|
2007-09-10 05:57:59 +08:00
|
|
|
|
loaddata <fixture fixture ...>
|
2007-03-01 21:11:08 +08:00
|
|
|
|
------------------------------
|
|
|
|
|
|
2009-11-12 21:58:32 +08:00
|
|
|
|
.. django-admin:: loaddata
|
|
|
|
|
|
2007-03-01 21:11:08 +08:00
|
|
|
|
Searches for and loads the contents of the named fixture into the database.
|
|
|
|
|
|
2009-12-22 23:18:51 +08:00
|
|
|
|
The :djadminopt:`--database` option can be used to specify the database
|
|
|
|
|
onto which the data will be loaded.
|
|
|
|
|
|
2013-01-01 21:12:42 +08:00
|
|
|
|
.. django-admin-option:: --ignorenonexistent
|
|
|
|
|
|
2012-09-30 20:34:13 +08:00
|
|
|
|
.. versionadded:: 1.5
|
|
|
|
|
|
|
|
|
|
The :djadminopt:`--ignorenonexistent` option can be used to ignore fields that
|
|
|
|
|
may have been removed from models since the fixture was originally generated.
|
|
|
|
|
|
2008-11-25 04:42:09 +08:00
|
|
|
|
What's a "fixture"?
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
2007-09-10 05:57:59 +08: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 21:11:08 +08:00
|
|
|
|
|
|
|
|
|
Django will search in three locations for fixtures:
|
|
|
|
|
|
2011-10-14 08:12:01 +08: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 21:11:08 +08:00
|
|
|
|
|
|
|
|
|
Django will load any and all fixtures it finds in these locations that match
|
2007-04-09 09:44:26 +08:00
|
|
|
|
the provided fixture names.
|
2007-03-01 21:11:08 +08:00
|
|
|
|
|
2007-04-09 09:44:26 +08:00
|
|
|
|
If the named fixture has a file extension, only fixtures of that type
|
2007-03-01 21:11:08 +08:00
|
|
|
|
will be loaded. For example::
|
|
|
|
|
|
|
|
|
|
django-admin.py loaddata mydata.json
|
2007-04-09 09:44:26 +08:00
|
|
|
|
|
|
|
|
|
would only load JSON fixtures called ``mydata``. The fixture extension
|
2008-11-25 04:42:09 +08:00
|
|
|
|
must correspond to the registered name of a
|
|
|
|
|
:ref:`serializer <serialization-formats>` (e.g., ``json`` or ``xml``).
|
2007-03-01 21:11:08 +08:00
|
|
|
|
|
2008-11-25 04:42:09 +08:00
|
|
|
|
If you omit the extensions, Django will search all available fixture types
|
2007-03-01 21:11:08 +08:00
|
|
|
|
for a matching fixture. For example::
|
|
|
|
|
|
|
|
|
|
django-admin.py loaddata mydata
|
2007-04-09 09:44:26 +08:00
|
|
|
|
|
2007-03-01 21:11:08 +08: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-25 04:42:09 +08:00
|
|
|
|
as a JSON fixture.
|
2007-03-01 21:11:08 +08:00
|
|
|
|
|
2007-04-09 09:44:26 +08:00
|
|
|
|
The fixtures that are named can include directory components. These
|
2007-03-16 23:02:21 +08:00
|
|
|
|
directories will be included in the search path. For example::
|
2007-03-01 21:11:08 +08:00
|
|
|
|
|
|
|
|
|
django-admin.py loaddata foo/bar/mydata.json
|
2007-04-09 09:44:26 +08:00
|
|
|
|
|
|
|
|
|
would search ``<appname>/fixtures/foo/bar/mydata.json`` for each installed
|
|
|
|
|
application, ``<dirname>/foo/bar/mydata.json`` for each directory in
|
2011-05-30 01:41:04 +08:00
|
|
|
|
:setting:`FIXTURE_DIRS`, and the literal path ``foo/bar/mydata.json``.
|
2007-03-01 21:11:08 +08:00
|
|
|
|
|
2009-04-01 07:34:03 +08:00
|
|
|
|
When fixture files are processed, the data is saved to the database as is.
|
2013-05-12 07:34:02 +08: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)
|
|
|
|
|
|
|
|
|
|
You could also write a simple decorator to encapsulate this logic::
|
|
|
|
|
|
|
|
|
|
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-04-01 07:34:03 +08:00
|
|
|
|
|
2007-03-01 21:11:08 +08: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.
|
|
|
|
|
|
2007-04-09 20:11:19 +08:00
|
|
|
|
The ``dumpdata`` command can be used to generate input for ``loaddata``.
|
|
|
|
|
|
2008-11-25 04:42:09 +08:00
|
|
|
|
Compressed fixtures
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
|
|
Fixtures may be compressed in ``zip``, ``gz``, or ``bz2`` format. For example::
|
|
|
|
|
|
|
|
|
|
django-admin.py loaddata mydata.json
|
|
|
|
|
|
|
|
|
|
would look for any of ``mydata.json``, ``mydata.json.zip``,
|
2012-02-04 01:52:39 +08:00
|
|
|
|
``mydata.json.gz``, or ``mydata.json.bz2``. The first file contained within a
|
2008-11-25 04:42:09 +08:00
|
|
|
|
zip-compressed archive is used.
|
|
|
|
|
|
|
|
|
|
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 15:39:05 +08:00
|
|
|
|
.. admonition:: MySQL with MyISAM and fixtures
|
|
|
|
|
|
|
|
|
|
The MyISAM storage engine of MySQL doesn't support transactions or
|
2012-03-03 01:16:52 +08: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 09:44:26 +08:00
|
|
|
|
|
2009-12-22 23:18:51 +08:00
|
|
|
|
Database-specific fixtures
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
2011-04-21 00:28:02 +08:00
|
|
|
|
If you're in a multi-database setup, you might have fixture data that
|
2009-12-22 23:18:51 +08:00
|
|
|
|
you want to load onto one database, but not onto another. In this
|
2011-04-21 00:28:02 +08:00
|
|
|
|
situation, you can add database identifier into the names of your fixtures.
|
|
|
|
|
|
|
|
|
|
For example, if your :setting:`DATABASES` setting has a 'master' database
|
|
|
|
|
defined, name the fixture ``mydata.master.json`` or
|
|
|
|
|
``mydata.master.json.gz`` and the fixture will only be loaded when you
|
|
|
|
|
specify you want to load data into the ``master`` database.
|
2009-12-22 23:18:51 +08:00
|
|
|
|
|
2008-07-06 14:39:44 +08:00
|
|
|
|
makemessages
|
|
|
|
|
------------
|
|
|
|
|
|
2009-11-12 21:58:32 +08:00
|
|
|
|
.. django-admin:: makemessages
|
|
|
|
|
|
2008-07-06 14:39:44 +08: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
|
2008-08-24 06:25:40 +08:00
|
|
|
|
conf/locale (in the django tree) or locale (for project and application)
|
2008-07-06 14:39:44 +08:00
|
|
|
|
directory. After making changes to the messages files you need to compile them
|
|
|
|
|
with ``compilemessages`` for use with the builtin gettext support. See the
|
2008-08-24 06:25:40 +08:00
|
|
|
|
:ref:`i18n documentation <how-to-create-language-files>` for details.
|
2008-07-06 14:39:44 +08:00
|
|
|
|
|
2009-11-12 21:58:32 +08:00
|
|
|
|
.. django-admin-option:: --all
|
2008-07-06 14:39:44 +08:00
|
|
|
|
|
|
|
|
|
Use the ``--all`` or ``-a`` option to update the message files for all
|
|
|
|
|
available languages.
|
|
|
|
|
|
|
|
|
|
Example usage::
|
|
|
|
|
|
|
|
|
|
django-admin.py makemessages --all
|
|
|
|
|
|
2009-11-12 21:58:32 +08:00
|
|
|
|
.. django-admin-option:: --extension
|
2008-08-09 00:41:55 +08:00
|
|
|
|
|
|
|
|
|
Use the ``--extension`` or ``-e`` option to specify a list of file extensions
|
2011-06-19 19:24:25 +08:00
|
|
|
|
to examine (default: ".html", ".txt").
|
2008-08-09 00:41:55 +08:00
|
|
|
|
|
|
|
|
|
Example usage::
|
|
|
|
|
|
|
|
|
|
django-admin.py makemessages --locale=de --extension xhtml
|
|
|
|
|
|
|
|
|
|
Separate multiple extensions with commas or use -e or --extension multiple times::
|
|
|
|
|
|
|
|
|
|
django-admin.py makemessages --locale=de --extension=html,txt --extension xml
|
|
|
|
|
|
2012-06-07 17:23:25 +08:00
|
|
|
|
Use the :djadminopt:`--locale` option (or its shorter version ``-l``) to
|
|
|
|
|
specify the locale(s) to process.
|
2008-07-06 14:39:44 +08:00
|
|
|
|
|
|
|
|
|
Example usage::
|
|
|
|
|
|
2012-06-07 23:24:48 +08:00
|
|
|
|
django-admin.py makemessages --locale=pt_BR
|
2012-06-07 17:23:25 +08:00
|
|
|
|
django-admin.py makemessages --locale=pt_BR --locale=fr
|
|
|
|
|
django-admin.py makemessages -l pt_BR
|
|
|
|
|
django-admin.py makemessages -l pt_BR -l fr
|
|
|
|
|
|
|
|
|
|
You can also use commas to separate multiple locales::
|
|
|
|
|
|
|
|
|
|
django-admin.py makemessages --locale=de,fr,pt_BR
|
|
|
|
|
django-admin.py makemessages -l de,fr,pt_BR
|
|
|
|
|
|
|
|
|
|
.. versionchanged:: 1.6
|
|
|
|
|
|
2013-03-25 13:53:48 +08:00
|
|
|
|
Added the ability to specify multiple locales.
|
2008-07-06 14:39:44 +08:00
|
|
|
|
|
2009-11-12 21:58:32 +08:00
|
|
|
|
.. django-admin-option:: --domain
|
2008-07-06 14:39:44 +08:00
|
|
|
|
|
|
|
|
|
Use the ``--domain`` or ``-d`` option to change the domain of the messages files.
|
|
|
|
|
Currently supported:
|
|
|
|
|
|
2011-10-14 08:12:01 +08:00
|
|
|
|
* ``django`` for all ``*.py``, ``*.html`` and ``*.txt`` files (default)
|
|
|
|
|
* ``djangojs`` for ``*.js`` files
|
2010-02-16 20:14:27 +08:00
|
|
|
|
|
|
|
|
|
.. django-admin-option:: --symlinks
|
|
|
|
|
|
|
|
|
|
Use the ``--symlinks`` or ``-s`` option to follow symlinks to directories when
|
|
|
|
|
looking for new translation strings.
|
|
|
|
|
|
|
|
|
|
Example usage::
|
|
|
|
|
|
|
|
|
|
django-admin.py makemessages --locale=de --symlinks
|
2008-07-06 14:39:44 +08:00
|
|
|
|
|
2010-02-16 20:15:04 +08:00
|
|
|
|
.. django-admin-option:: --ignore
|
|
|
|
|
|
|
|
|
|
Use the ``--ignore`` or ``-i`` option to ignore files or directories matching
|
2011-09-05 05:17:30 +08:00
|
|
|
|
the given :mod:`glob`-style pattern. Use multiple times to ignore more.
|
2010-02-16 20:15:04 +08:00
|
|
|
|
|
2013-01-26 00:58:37 +08:00
|
|
|
|
These patterns are used by default: ``'CVS'``, ``'.*'``, ``'*~'``
|
2010-02-16 20:15:04 +08:00
|
|
|
|
|
|
|
|
|
Example usage::
|
|
|
|
|
|
|
|
|
|
django-admin.py makemessages --locale=en_US --ignore=apps/* --ignore=secret/*.html
|
|
|
|
|
|
|
|
|
|
.. django-admin-option:: --no-default-ignore
|
|
|
|
|
|
|
|
|
|
Use the ``--no-default-ignore`` option to disable the default values of
|
|
|
|
|
:djadminopt:`--ignore`.
|
|
|
|
|
|
2010-11-04 20:08:37 +08:00
|
|
|
|
.. django-admin-option:: --no-wrap
|
|
|
|
|
|
|
|
|
|
Use the ``--no-wrap`` option to disable breaking long message lines into
|
|
|
|
|
several lines in language files.
|
|
|
|
|
|
2011-11-11 21:07:14 +08:00
|
|
|
|
.. django-admin-option:: --no-location
|
|
|
|
|
|
2013-08-06 00:23:26 +08:00
|
|
|
|
Use the ``--no-location`` option to not write '``#: filename:line``’
|
2011-11-11 21:07:14 +08:00
|
|
|
|
comment lines in language files. Note that using this option makes it harder
|
|
|
|
|
for technically skilled translators to understand each message's context.
|
|
|
|
|
|
2013-01-17 02:36:22 +08:00
|
|
|
|
.. django-admin-option:: --keep-pot
|
|
|
|
|
|
|
|
|
|
.. versionadded:: 1.6
|
|
|
|
|
|
|
|
|
|
Use the ``--keep-pot`` option to prevent django from deleting the temporary
|
2013-01-26 00:58:37 +08:00
|
|
|
|
.pot file it generates before creating the .po file. This is useful for
|
2013-01-17 02:36:22 +08:00
|
|
|
|
debugging errors which may prevent the final language files from being created.
|
|
|
|
|
|
2007-02-27 05:36:14 +08:00
|
|
|
|
runfcgi [options]
|
|
|
|
|
-----------------
|
2007-08-26 03:32:30 +08:00
|
|
|
|
|
2009-11-12 21:58:32 +08:00
|
|
|
|
.. django-admin:: runfcgi
|
|
|
|
|
|
2013-07-18 23:10:49 +08:00
|
|
|
|
.. deprecated:: 1.7
|
|
|
|
|
FastCGI support is deprecated and will be removed in Django 1.9.
|
|
|
|
|
|
2008-08-24 06:25:40 +08:00
|
|
|
|
Starts a set of FastCGI processes suitable for use with any Web server that
|
2010-08-20 03:27:44 +08:00
|
|
|
|
supports the FastCGI protocol. See the :doc:`FastCGI deployment documentation
|
|
|
|
|
</howto/deployment/fastcgi>` for details. Requires the Python FastCGI module from
|
2007-02-27 05:36:14 +08:00
|
|
|
|
`flup`_.
|
|
|
|
|
|
2012-12-27 04:47:29 +08:00
|
|
|
|
Internally, this wraps the WSGI application object specified by the
|
|
|
|
|
:setting:`WSGI_APPLICATION` setting.
|
2011-10-22 12:30:10 +08:00
|
|
|
|
|
2007-02-27 05:36:14 +08:00
|
|
|
|
.. _flup: http://www.saddi.com/software/flup/
|
|
|
|
|
|
2010-10-27 23:35:07 +08:00
|
|
|
|
The options accepted by this command are passed to the FastCGI library and
|
|
|
|
|
don't use the ``'--'`` prefix as is usual for other Django management commands.
|
|
|
|
|
|
|
|
|
|
.. django-admin-option:: protocol
|
|
|
|
|
|
|
|
|
|
``protocol=PROTOCOL``
|
|
|
|
|
|
|
|
|
|
Protocol to use. *PROTOCOL* can be ``fcgi``, ``scgi``, ``ajp``, etc.
|
|
|
|
|
(default is ``fcgi``)
|
|
|
|
|
|
|
|
|
|
.. django-admin-option:: host
|
|
|
|
|
|
|
|
|
|
``host=HOSTNAME``
|
|
|
|
|
|
|
|
|
|
Hostname to listen on.
|
|
|
|
|
|
|
|
|
|
.. django-admin-option:: port
|
|
|
|
|
|
|
|
|
|
``port=PORTNUM``
|
|
|
|
|
|
|
|
|
|
Port to listen on.
|
|
|
|
|
|
|
|
|
|
.. django-admin-option:: socket
|
|
|
|
|
|
|
|
|
|
``socket=FILE``
|
|
|
|
|
|
|
|
|
|
UNIX socket to listen on.
|
|
|
|
|
|
|
|
|
|
.. django-admin-option:: method
|
|
|
|
|
|
|
|
|
|
``method=IMPL``
|
|
|
|
|
|
|
|
|
|
Possible values: ``prefork`` or ``threaded`` (default ``prefork``)
|
|
|
|
|
|
|
|
|
|
.. django-admin-option:: maxrequests
|
|
|
|
|
|
|
|
|
|
``maxrequests=NUMBER``
|
|
|
|
|
|
|
|
|
|
Number of requests a child handles before it is killed and a new child is
|
|
|
|
|
forked (0 means no limit).
|
|
|
|
|
|
|
|
|
|
.. django-admin-option:: maxspare
|
|
|
|
|
|
|
|
|
|
``maxspare=NUMBER``
|
|
|
|
|
|
|
|
|
|
Max number of spare processes / threads.
|
|
|
|
|
|
|
|
|
|
.. django-admin-option:: minspare
|
|
|
|
|
|
|
|
|
|
``minspare=NUMBER``
|
|
|
|
|
|
|
|
|
|
Min number of spare processes / threads.
|
|
|
|
|
|
|
|
|
|
.. django-admin-option:: maxchildren
|
|
|
|
|
|
|
|
|
|
``maxchildren=NUMBER``
|
|
|
|
|
|
|
|
|
|
Hard limit number of processes / threads.
|
|
|
|
|
|
|
|
|
|
.. django-admin-option:: daemonize
|
|
|
|
|
|
|
|
|
|
``daemonize=BOOL``
|
|
|
|
|
|
|
|
|
|
Whether to detach from terminal.
|
|
|
|
|
|
|
|
|
|
.. django-admin-option:: pidfile
|
|
|
|
|
|
|
|
|
|
``pidfile=FILE``
|
|
|
|
|
|
|
|
|
|
Write the spawned process-id to file *FILE*.
|
|
|
|
|
|
|
|
|
|
.. django-admin-option:: workdir
|
|
|
|
|
|
|
|
|
|
``workdir=DIRECTORY``
|
|
|
|
|
|
|
|
|
|
Change to directory *DIRECTORY* when daemonizing.
|
|
|
|
|
|
|
|
|
|
.. django-admin-option:: debug
|
|
|
|
|
|
|
|
|
|
``debug=BOOL``
|
|
|
|
|
|
|
|
|
|
Set to true to enable flup tracebacks.
|
|
|
|
|
|
|
|
|
|
.. django-admin-option:: outlog
|
|
|
|
|
|
|
|
|
|
``outlog=FILE``
|
|
|
|
|
|
|
|
|
|
Write stdout to the *FILE* file.
|
|
|
|
|
|
|
|
|
|
.. django-admin-option:: errlog
|
|
|
|
|
|
|
|
|
|
``errlog=FILE``
|
|
|
|
|
|
|
|
|
|
Write stderr to the *FILE* file.
|
|
|
|
|
|
|
|
|
|
.. django-admin-option:: umask
|
|
|
|
|
|
|
|
|
|
``umask=UMASK``
|
|
|
|
|
|
|
|
|
|
Umask to use when daemonizing. The value is interpeted as an octal number
|
|
|
|
|
(default value is ``022``).
|
|
|
|
|
|
|
|
|
|
Example usage::
|
|
|
|
|
|
|
|
|
|
django-admin.py runfcgi socket=/tmp/fcgi.sock method=prefork daemonize=true \
|
|
|
|
|
pidfile=/var/run/django-fcgi.pid
|
|
|
|
|
|
|
|
|
|
Run a FastCGI server as a daemon and write the spawned PID in a file.
|
|
|
|
|
|
2011-01-15 14:31:38 +08:00
|
|
|
|
runserver [port or address:port]
|
2011-01-16 02:45:49 +08:00
|
|
|
|
--------------------------------
|
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-04 02:30:54 +08:00
|
|
|
|
|
2009-11-12 21:58:32 +08:00
|
|
|
|
.. django-admin:: runserver
|
2005-08-11 04:24:51 +08:00
|
|
|
|
|
|
|
|
|
Starts a lightweight development Web server on the local machine. By default,
|
2010-11-26 21:33:53 +08:00
|
|
|
|
the server runs on port 8000 on the IP address ``127.0.0.1``. You can pass in an
|
2005-08-20 05:23:56 +08:00
|
|
|
|
IP address and port number explicitly.
|
2005-08-11 04:24:51 +08: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 09:31:56 +08:00
|
|
|
|
are reserved for the superuser (root).
|
2005-08-11 04:24:51 +08:00
|
|
|
|
|
2012-12-27 04:47:29 +08:00
|
|
|
|
This server uses the WSGI application object specified by the
|
|
|
|
|
:setting:`WSGI_APPLICATION` setting.
|
2011-10-22 12:30:10 +08:00
|
|
|
|
|
2006-06-02 13:40:31 +08: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
|
|
|
|
|
the business of making Web frameworks, not Web servers, so improving this
|
|
|
|
|
server to be able to handle a production environment is outside the scope of
|
|
|
|
|
Django.)
|
2005-08-11 04:24:51 +08: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.
|
|
|
|
|
|
2005-08-18 12:50:09 +08:00
|
|
|
|
When you start the server, and each time you change Python code while the
|
|
|
|
|
server is running, the server will validate all of your installed models. (See
|
2006-05-02 09:31:56 +08:00
|
|
|
|
the ``validate`` command below.) If the validator finds errors, it will print
|
2005-08-18 12:50:09 +08:00
|
|
|
|
them to standard output, but it won't stop the server.
|
|
|
|
|
|
2005-08-11 04:24:51 +08:00
|
|
|
|
You can run as many servers as you want, as long as they're on separate ports.
|
|
|
|
|
Just execute ``django-admin.py runserver`` more than once.
|
|
|
|
|
|
2010-11-26 21:33:53 +08:00
|
|
|
|
Note that the default IP address, ``127.0.0.1``, is not accessible from other
|
2005-10-17 21:05:55 +08: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 21:33:53 +08:00
|
|
|
|
``0.0.0.0`` or ``::`` (with IPv6 enabled).
|
|
|
|
|
|
2011-01-15 14:31:38 +08: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 21:05:55 +08:00
|
|
|
|
|
2011-01-31 01:23:30 +08:00
|
|
|
|
If the :doc:`staticfiles</ref/contrib/staticfiles>` contrib app is enabled
|
2013-07-28 09:45:25 +08:00
|
|
|
|
(default in new projects) the :djadmin:`runserver` command will be overridden
|
2012-09-28 08:25:31 +08:00
|
|
|
|
with its own :ref:`runserver<staticfiles-runserver>` command.
|
2011-01-31 01:23:30 +08:00
|
|
|
|
|
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-04 02:30:54 +08:00
|
|
|
|
.. django-admin-option:: --noreload
|
2007-09-10 05:57:59 +08:00
|
|
|
|
|
|
|
|
|
Use the ``--noreload`` option to disable the use of 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 11:37:57 +08:00
|
|
|
|
Example usage::
|
|
|
|
|
|
|
|
|
|
django-admin.py runserver --noreload
|
|
|
|
|
|
2011-06-17 21:08:36 +08:00
|
|
|
|
.. django-admin-option:: --nothreading
|
|
|
|
|
|
2012-12-27 04:47:29 +08:00
|
|
|
|
The development server is multithreaded by default. Use the ``--nothreading``
|
|
|
|
|
option to disable the use of threading in the development server.
|
2011-06-17 21:08:36 +08:00
|
|
|
|
|
2010-11-26 21:33:53 +08:00
|
|
|
|
.. django-admin-option:: --ipv6, -6
|
|
|
|
|
|
|
|
|
|
Use the ``--ipv6`` (or shorter ``-6``) option to tell Django to use IPv6 for
|
|
|
|
|
the development server. This changes the default IP address from
|
|
|
|
|
``127.0.0.1`` to ``::1``.
|
|
|
|
|
|
|
|
|
|
Example usage::
|
|
|
|
|
|
|
|
|
|
django-admin.py runserver --ipv6
|
|
|
|
|
|
2007-09-10 06:00:30 +08:00
|
|
|
|
Examples of using different ports and addresses
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
2010-11-26 21:33:53 +08:00
|
|
|
|
Port 8000 on IP address ``127.0.0.1``::
|
2007-09-10 06:00:30 +08:00
|
|
|
|
|
2010-11-26 21:33:53 +08:00
|
|
|
|
django-admin.py runserver
|
2007-09-10 06:00:30 +08:00
|
|
|
|
|
2010-11-26 21:33:53 +08:00
|
|
|
|
Port 8000 on IP address ``1.2.3.4``::
|
2007-09-10 06:00:30 +08:00
|
|
|
|
|
2010-11-26 21:33:53 +08:00
|
|
|
|
django-admin.py runserver 1.2.3.4:8000
|
2005-08-20 05:23:56 +08:00
|
|
|
|
|
2010-11-26 21:33:53 +08:00
|
|
|
|
Port 7000 on IP address ``127.0.0.1``::
|
2005-08-20 05:23:56 +08:00
|
|
|
|
|
|
|
|
|
django-admin.py runserver 7000
|
|
|
|
|
|
2010-11-26 21:33:53 +08:00
|
|
|
|
Port 7000 on IP address ``1.2.3.4``::
|
2005-08-20 05:23:56 +08:00
|
|
|
|
|
|
|
|
|
django-admin.py runserver 1.2.3.4:7000
|
|
|
|
|
|
2010-11-26 21:33:53 +08:00
|
|
|
|
Port 8000 on IPv6 address ``::1``::
|
|
|
|
|
|
|
|
|
|
django-admin.py runserver -6
|
|
|
|
|
|
|
|
|
|
Port 7000 on IPv6 address ``::1``::
|
|
|
|
|
|
|
|
|
|
django-admin.py runserver -6 7000
|
|
|
|
|
|
|
|
|
|
Port 7000 on IPv6 address ``2001:0db8:1234:5678::9``::
|
|
|
|
|
|
|
|
|
|
django-admin.py runserver [2001:0db8:1234:5678::9]:7000
|
|
|
|
|
|
2011-01-15 14:31:38 +08:00
|
|
|
|
Port 8000 on IPv4 address of host ``localhost``::
|
|
|
|
|
|
|
|
|
|
django-admin.py runserver localhost:8000
|
|
|
|
|
|
|
|
|
|
Port 8000 on IPv6 address of host ``localhost``::
|
|
|
|
|
|
|
|
|
|
django-admin.py runserver -6 localhost:8000
|
|
|
|
|
|
2006-05-19 13:07:33 +08:00
|
|
|
|
Serving static files with the development server
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
2006-05-19 11:47:59 +08:00
|
|
|
|
|
2006-05-19 13:07:33 +08:00
|
|
|
|
By default, the development server doesn't serve any static files for your site
|
2011-05-30 01:41:04 +08:00
|
|
|
|
(such as CSS files, images, things under :setting:`MEDIA_URL` and so forth). If
|
2013-03-08 03:15:39 +08:00
|
|
|
|
you want to configure Django to serve static media, read
|
|
|
|
|
:doc:`/howto/static-files/index`.
|
2008-08-24 06:25:40 +08:00
|
|
|
|
|
2006-01-13 04:56:10 +08:00
|
|
|
|
shell
|
|
|
|
|
-----
|
|
|
|
|
|
2009-11-12 21:58:32 +08:00
|
|
|
|
.. django-admin:: shell
|
|
|
|
|
|
2006-01-13 04:56:10 +08:00
|
|
|
|
Starts the Python interactive interpreter.
|
|
|
|
|
|
2010-12-13 07:03:24 +08:00
|
|
|
|
Django will use IPython_ or bpython_ if either is installed. If you have a
|
|
|
|
|
rich shell installed but want to force use of the "plain" Python interpreter,
|
|
|
|
|
use the ``--plain`` option, like so::
|
2006-01-13 04:56:10 +08:00
|
|
|
|
|
|
|
|
|
django-admin.py shell --plain
|
|
|
|
|
|
2012-07-17 08:37:52 +08:00
|
|
|
|
If you would like to specify either IPython or bpython as your interpreter if
|
|
|
|
|
you have both installed you can specify an alternative interpreter interface
|
2012-08-06 04:47:29 +08:00
|
|
|
|
with the ``-i`` or ``--interface`` options like so:
|
2012-07-17 08:37:52 +08:00
|
|
|
|
|
|
|
|
|
IPython::
|
|
|
|
|
|
|
|
|
|
django-admin.py shell -i ipython
|
|
|
|
|
django-admin.py shell --interface ipython
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bpython::
|
|
|
|
|
|
|
|
|
|
django-admin.py shell -i bpython
|
|
|
|
|
django-admin.py shell --interface bpython
|
|
|
|
|
|
|
|
|
|
|
2006-01-13 04:56:10 +08:00
|
|
|
|
.. _IPython: http://ipython.scipy.org/
|
2010-12-13 07:03:24 +08:00
|
|
|
|
.. _bpython: http://bpython-interpreter.org/
|
2006-01-13 04:56:10 +08:00
|
|
|
|
|
2013-01-25 08:21:26 +08:00
|
|
|
|
When the "plain" Python interactive interpreter starts (be it because
|
|
|
|
|
``--plain`` was specified or because no other interactive interface is
|
|
|
|
|
available) it reads the script pointed to by the :envvar:`PYTHONSTARTUP`
|
|
|
|
|
environment variable and the ``~/.pythonrc.py`` script. If you don't wish this
|
|
|
|
|
behavior you can use the ``--no-startup`` option. e.g.::
|
|
|
|
|
|
|
|
|
|
django-admin.py shell --plain --no-startup
|
|
|
|
|
|
2013-03-25 13:53:48 +08:00
|
|
|
|
.. versionadded:: 1.5
|
|
|
|
|
|
|
|
|
|
The ``--interface`` option was added in Django 1.5.
|
|
|
|
|
|
2013-01-25 08:21:26 +08:00
|
|
|
|
.. versionadded:: 1.6
|
|
|
|
|
|
2013-03-25 13:53:48 +08:00
|
|
|
|
The ``--no-startup`` option was added in Django 1.6.
|
2013-01-25 08:21:26 +08:00
|
|
|
|
|
2007-09-10 05:57:59 +08:00
|
|
|
|
sql <appname appname ...>
|
2006-05-02 09:31:56 +08:00
|
|
|
|
-------------------------
|
2005-08-11 04:24:51 +08:00
|
|
|
|
|
2009-11-12 21:58:32 +08:00
|
|
|
|
.. django-admin:: sql
|
|
|
|
|
|
2007-09-10 05:57:59 +08:00
|
|
|
|
Prints the CREATE TABLE SQL statements for the given app name(s).
|
2005-08-11 04:24:51 +08:00
|
|
|
|
|
2009-12-22 23:18:51 +08:00
|
|
|
|
The :djadminopt:`--database` option can be used to specify the database for
|
|
|
|
|
which to print the SQL.
|
|
|
|
|
|
2007-09-10 05:57:59 +08:00
|
|
|
|
sqlall <appname appname ...>
|
2006-05-02 09:31:56 +08:00
|
|
|
|
----------------------------
|
2005-08-11 04:24:51 +08:00
|
|
|
|
|
2009-11-12 21:58:32 +08:00
|
|
|
|
.. django-admin:: sqlall
|
|
|
|
|
|
2007-09-10 05:57:59 +08:00
|
|
|
|
Prints the CREATE TABLE and initial-data SQL statements for the given app name(s).
|
2005-08-11 04:24:51 +08:00
|
|
|
|
|
2007-04-13 09:01:57 +08:00
|
|
|
|
Refer to the description of ``sqlcustom`` for an explanation of how to
|
2006-05-19 13:07:33 +08:00
|
|
|
|
specify initial data.
|
2006-05-19 11:37:50 +08:00
|
|
|
|
|
2009-12-22 23:18:51 +08:00
|
|
|
|
The :djadminopt:`--database` option can be used to specify the database for
|
|
|
|
|
which to print the SQL.
|
|
|
|
|
|
2007-09-10 05:57:59 +08:00
|
|
|
|
sqlclear <appname appname ...>
|
2007-08-26 03:32:30 +08:00
|
|
|
|
------------------------------
|
2005-08-11 04:24:51 +08:00
|
|
|
|
|
2009-11-12 21:58:32 +08:00
|
|
|
|
.. django-admin:: sqlclear
|
|
|
|
|
|
2007-09-10 05:57:59 +08:00
|
|
|
|
Prints the DROP TABLE SQL statements for the given app name(s).
|
2005-08-11 04:24:51 +08:00
|
|
|
|
|
2009-12-22 23:18:51 +08:00
|
|
|
|
The :djadminopt:`--database` option can be used to specify the database for
|
|
|
|
|
which to print the SQL.
|
|
|
|
|
|
2007-09-10 05:57:59 +08:00
|
|
|
|
sqlcustom <appname appname ...>
|
2007-03-01 21:11:08 +08:00
|
|
|
|
-------------------------------
|
2005-08-11 04:24:51 +08:00
|
|
|
|
|
2009-11-12 21:58:32 +08:00
|
|
|
|
.. django-admin:: sqlcustom
|
|
|
|
|
|
2007-09-10 05:57:59 +08:00
|
|
|
|
Prints the custom SQL statements for the given app name(s).
|
2005-08-11 04:24:51 +08:00
|
|
|
|
|
2006-05-19 13:07:33 +08:00
|
|
|
|
For each model in each specified app, this command looks for the file
|
2007-09-10 05:57:59 +08:00
|
|
|
|
``<appname>/sql/<modelname>.sql``, where ``<appname>`` is the given app name and
|
2006-05-19 13:07:33 +08:00
|
|
|
|
``<modelname>`` is the model's name in lowercase. For example, if you have an
|
2007-03-26 02:09:43 +08:00
|
|
|
|
app ``news`` that includes a ``Story`` model, ``sqlcustom`` will attempt
|
2006-05-19 13:07:33 +08:00
|
|
|
|
to read a file ``news/sql/story.sql`` and append it to the output of this
|
|
|
|
|
command.
|
|
|
|
|
|
|
|
|
|
Each of the SQL files, if given, is expected to contain valid SQL. The SQL
|
|
|
|
|
files are piped directly into the database after all of the models'
|
2007-03-01 21:11:08 +08:00
|
|
|
|
table-creation statements have been executed. Use this SQL hook to make any
|
|
|
|
|
table modifications, or insert any SQL functions into the database.
|
2006-05-19 11:37:50 +08:00
|
|
|
|
|
2007-01-25 08:53:30 +08:00
|
|
|
|
Note that the order in which the SQL files are processed is undefined.
|
|
|
|
|
|
2009-12-22 23:18:51 +08:00
|
|
|
|
The :djadminopt:`--database` option can be used to specify the database for
|
|
|
|
|
which to print the SQL.
|
|
|
|
|
|
2013-02-24 19:53:59 +08:00
|
|
|
|
sqldropindexes <appname appname ...>
|
2013-02-24 20:58:24 +08:00
|
|
|
|
------------------------------------
|
2013-02-24 19:53:59 +08:00
|
|
|
|
|
|
|
|
|
.. django-admin:: sqldropindexes
|
|
|
|
|
|
2013-02-25 04:09:45 +08:00
|
|
|
|
.. versionadded:: 1.6
|
|
|
|
|
|
2013-02-24 19:53:59 +08:00
|
|
|
|
Prints the DROP INDEX SQL statements for the given app name(s).
|
|
|
|
|
|
|
|
|
|
The :djadminopt:`--database` option can be used to specify the database for
|
|
|
|
|
which to print the SQL.
|
|
|
|
|
|
2007-08-26 03:32:30 +08:00
|
|
|
|
sqlflush
|
|
|
|
|
--------
|
|
|
|
|
|
2009-11-12 21:58:32 +08:00
|
|
|
|
.. django-admin:: sqlflush
|
|
|
|
|
|
|
|
|
|
Prints the SQL statements that would be executed for the :djadmin:`flush`
|
|
|
|
|
command.
|
2007-08-26 03:32:30 +08:00
|
|
|
|
|
2009-12-22 23:18:51 +08:00
|
|
|
|
The :djadminopt:`--database` option can be used to specify the database for
|
|
|
|
|
which to print the SQL.
|
|
|
|
|
|
2007-09-10 05:57:59 +08:00
|
|
|
|
sqlindexes <appname appname ...>
|
2007-08-26 03:32:30 +08:00
|
|
|
|
--------------------------------
|
2007-03-01 21:11:08 +08:00
|
|
|
|
|
2009-11-12 21:58:32 +08:00
|
|
|
|
.. django-admin:: sqlindexes
|
|
|
|
|
|
2007-09-10 05:57:59 +08:00
|
|
|
|
Prints the CREATE INDEX SQL statements for the given app name(s).
|
2007-03-01 21:11:08 +08:00
|
|
|
|
|
2009-12-22 23:18:51 +08:00
|
|
|
|
The :djadminopt:`--database` option can be used to specify the database for
|
|
|
|
|
which to print the SQL.
|
|
|
|
|
|
2007-09-10 05:57:59 +08:00
|
|
|
|
sqlsequencereset <appname appname ...>
|
2007-08-26 03:32:30 +08:00
|
|
|
|
--------------------------------------
|
2005-08-11 04:24:51 +08:00
|
|
|
|
|
2009-11-12 21:58:32 +08:00
|
|
|
|
.. django-admin:: sqlsequencereset
|
|
|
|
|
|
2007-09-10 05:57:59 +08:00
|
|
|
|
Prints the SQL statements for resetting sequences for the given app name(s).
|
2005-08-11 04:24:51 +08:00
|
|
|
|
|
2009-06-18 21:37:10 +08: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-11 04:24:51 +08:00
|
|
|
|
|
2009-12-22 23:18:51 +08:00
|
|
|
|
The :djadminopt:`--database` option can be used to specify the database for
|
|
|
|
|
which to print the SQL.
|
|
|
|
|
|
2011-12-23 06:38:02 +08:00
|
|
|
|
startapp <appname> [destination]
|
|
|
|
|
--------------------------------
|
2005-08-11 04:24:51 +08:00
|
|
|
|
|
2009-11-12 21:58:32 +08:00
|
|
|
|
.. django-admin:: startapp
|
|
|
|
|
|
2005-08-11 04:24:51 +08:00
|
|
|
|
Creates a Django app directory structure for the given app name in the current
|
2011-12-23 06:38:02 +08:00
|
|
|
|
directory or the given destination.
|
|
|
|
|
|
|
|
|
|
By default the directory created contains a ``models.py`` file and other app
|
2011-12-31 02:14:31 +08:00
|
|
|
|
template files. (See the `source`_ for more details.) If only the app
|
2011-12-23 06:38:02 +08:00
|
|
|
|
name is given, the app directory will be created in the current working
|
2005-08-11 04:24:51 +08:00
|
|
|
|
directory.
|
|
|
|
|
|
2012-01-05 07:55:34 +08: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-23 06:38:02 +08:00
|
|
|
|
|
2011-12-31 02:14:31 +08:00
|
|
|
|
For example::
|
2011-12-23 06:38:02 +08:00
|
|
|
|
|
2012-01-05 07:55:34 +08:00
|
|
|
|
django-admin.py startapp myapp /Users/jezdez/Code/myapp
|
2011-12-23 06:38:02 +08: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 22:51:50 +08:00
|
|
|
|
.. _custom-app-and-project-templates:
|
|
|
|
|
|
2011-12-23 06:38:02 +08:00
|
|
|
|
.. django-admin-option:: --template
|
|
|
|
|
|
2011-12-31 02:14:31 +08:00
|
|
|
|
With the ``--template`` option, you can use a custom app template by providing
|
|
|
|
|
either the path to a directory with the app template file, or a path to a
|
2011-12-23 06:38:02 +08:00
|
|
|
|
compressed file (``.tar.gz``, ``.tar.bz2``, ``.tgz``, ``.tbz``, ``.zip``)
|
|
|
|
|
containing the app template files.
|
|
|
|
|
|
2012-11-16 13:17:58 +08:00
|
|
|
|
For example, this would look for an app template in the given directory when
|
|
|
|
|
creating the ``myapp`` app::
|
|
|
|
|
|
|
|
|
|
django-admin.py startapp --template=/Users/jezdez/Code/my_app_template myapp
|
|
|
|
|
|
2011-12-31 02:14:31 +08: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-23 06:38:02 +08:00
|
|
|
|
|
2012-11-16 13:17:58 +08:00
|
|
|
|
For example, taking advantage of Github's feature to expose repositories as
|
|
|
|
|
zip files, you can use a URL like::
|
2011-12-23 06:38:02 +08:00
|
|
|
|
|
2012-11-16 13:17:58 +08:00
|
|
|
|
django-admin.py startapp --template=https://github.com/githubuser/django-app-template/archive/master.zip myapp
|
2011-12-23 06:38:02 +08:00
|
|
|
|
|
2012-02-18 04:04:11 +08:00
|
|
|
|
When Django copies the app template files, it also renders certain files
|
|
|
|
|
through the template engine: the files whose extensions match the
|
|
|
|
|
``--extension`` option (``py`` by default) and the files whose names are passed
|
|
|
|
|
with the ``--name`` option. The :class:`template context
|
2011-12-23 06:38:02 +08:00
|
|
|
|
<django.template.Context>` used is:
|
|
|
|
|
|
2012-07-08 05:08:43 +08:00
|
|
|
|
- Any option passed to the startapp command (among the command's supported
|
|
|
|
|
options)
|
2011-12-31 02:14:31 +08:00
|
|
|
|
- ``app_name`` -- the app name as passed to the command
|
2011-12-23 06:38:02 +08:00
|
|
|
|
- ``app_directory`` -- the full path of the newly created app
|
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 22:51:50 +08:00
|
|
|
|
- ``docs_version`` -- the version of the documentation: ``'dev'`` or ``'1.x'``
|
2011-12-23 06:38:02 +08:00
|
|
|
|
|
|
|
|
|
.. _render_warning:
|
|
|
|
|
|
|
|
|
|
.. warning::
|
|
|
|
|
|
|
|
|
|
When the app template files are rendered with the Django template
|
2011-12-31 02:14:31 +08: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-23 06:38:02 +08:00
|
|
|
|
to template rendering, it might result in an incorrect example.
|
|
|
|
|
|
2011-12-31 02:14:31 +08:00
|
|
|
|
To work around this problem, you can use the :ttag:`templatetag`
|
2011-12-23 06:38:02 +08:00
|
|
|
|
templatetag to "escape" the various parts of the template syntax.
|
|
|
|
|
|
2012-05-03 23:42:56 +08:00
|
|
|
|
.. _source: https://github.com/django/django/tree/master/django/conf/app_template/
|
2011-12-23 06:38:02 +08:00
|
|
|
|
|
|
|
|
|
startproject <projectname> [destination]
|
|
|
|
|
----------------------------------------
|
2005-08-11 04:24:51 +08:00
|
|
|
|
|
2009-11-12 21:58:32 +08:00
|
|
|
|
.. django-admin:: startproject
|
|
|
|
|
|
2011-12-23 06:38:02 +08:00
|
|
|
|
Creates a Django project directory structure for the given project name in
|
|
|
|
|
the current directory or the given destination.
|
|
|
|
|
|
2011-12-31 02:14:31 +08:00
|
|
|
|
By default, the new directory contains ``manage.py`` and a project package
|
2012-02-04 01:52:39 +08:00
|
|
|
|
(containing a ``settings.py`` and other files). See the `template source`_ for
|
2012-01-05 07:55:34 +08:00
|
|
|
|
details.
|
2011-12-23 06:38:02 +08: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-05 07:55:34 +08: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-04 01:52:39 +08:00
|
|
|
|
package within it. Use '.' to denote the current working directory.
|
2011-12-31 02:14:31 +08:00
|
|
|
|
|
|
|
|
|
For example::
|
2011-12-23 06:38:02 +08:00
|
|
|
|
|
2012-01-05 07:55:34 +08:00
|
|
|
|
django-admin.py startproject myproject /Users/jezdez/Code/myproject_repo
|
2011-12-23 06:38:02 +08:00
|
|
|
|
|
2011-12-31 02:14:31 +08:00
|
|
|
|
As with the :djadmin:`startapp` command, the ``--template`` option lets you
|
2012-02-04 04:45:45 +08:00
|
|
|
|
specify a directory, file path or URL of a custom project template. See the
|
2011-12-31 02:14:31 +08:00
|
|
|
|
:djadmin:`startapp` documentation for details of supported project template
|
|
|
|
|
formats.
|
2011-12-23 06:38:02 +08:00
|
|
|
|
|
|
|
|
|
For example, this would look for a project template in the given directory
|
|
|
|
|
when creating the ``myproject`` project::
|
|
|
|
|
|
|
|
|
|
django-admin.py startproject --template=/Users/jezdez/Code/my_project_template myproject
|
|
|
|
|
|
2012-11-16 13:17:58 +08:00
|
|
|
|
Django will also accept URLs (``http``, ``https``, ``ftp``) to compressed
|
|
|
|
|
archives with the project template files, downloading and extracting them on the
|
|
|
|
|
fly.
|
|
|
|
|
|
|
|
|
|
For example, taking advantage of Github's feature to expose repositories as
|
|
|
|
|
zip files, you can use a URL like::
|
|
|
|
|
|
|
|
|
|
django-admin.py startproject --template=https://github.com/githubuser/django-project-template/archive/master.zip myproject
|
|
|
|
|
|
2012-02-18 04:04:11 +08:00
|
|
|
|
When Django copies the project template files, it also renders certain files
|
|
|
|
|
through the template engine: the files whose extensions match the
|
|
|
|
|
``--extension`` option (``py`` by default) and the files whose names are passed
|
|
|
|
|
with the ``--name`` option. The :class:`template context
|
2011-12-23 06:38:02 +08:00
|
|
|
|
<django.template.Context>` used is:
|
|
|
|
|
|
2013-03-30 20:36:31 +08:00
|
|
|
|
- Any option passed to the startapp command (among the command's supported
|
|
|
|
|
options)
|
2011-12-23 06:38:02 +08: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 22:51:50 +08:00
|
|
|
|
- ``docs_version`` -- the version of the documentation: ``'dev'`` or ``'1.x'``
|
2011-12-23 06:38:02 +08:00
|
|
|
|
|
|
|
|
|
Please also see the :ref:`rendering warning <render_warning>` as mentioned
|
|
|
|
|
for :djadmin:`startapp`.
|
|
|
|
|
|
2012-05-03 23:42:56 +08:00
|
|
|
|
.. _`template source`: https://github.com/django/django/tree/master/django/conf/project_template/
|
2011-12-23 06:38:02 +08:00
|
|
|
|
|
2006-05-19 12:12:16 +08:00
|
|
|
|
syncdb
|
|
|
|
|
------
|
|
|
|
|
|
2009-11-12 21:58:32 +08:00
|
|
|
|
.. django-admin:: syncdb
|
|
|
|
|
|
2011-05-30 01:41:04 +08:00
|
|
|
|
Creates the database tables for all apps in :setting:`INSTALLED_APPS` whose
|
|
|
|
|
tables have not already been created.
|
2006-05-19 12:12:16 +08:00
|
|
|
|
|
2006-05-19 13:07:33 +08:00
|
|
|
|
Use this command when you've added new applications to your project and want to
|
|
|
|
|
install them in the database. This includes any apps shipped with Django that
|
2011-05-30 01:41:04 +08:00
|
|
|
|
might be in :setting:`INSTALLED_APPS` by default. When you start a new project,
|
|
|
|
|
run this command to install the default apps.
|
2006-05-19 12:12:16 +08:00
|
|
|
|
|
2007-07-14 13:27:22 +08:00
|
|
|
|
.. admonition:: Syncdb will not alter existing tables
|
|
|
|
|
|
|
|
|
|
``syncdb`` will only create tables for models which have not yet been
|
|
|
|
|
installed. It will *never* issue ``ALTER TABLE`` statements to match
|
|
|
|
|
changes made to a model class after installation. Changes to model classes
|
|
|
|
|
and database schemas often involve some form of ambiguity and, in those
|
|
|
|
|
cases, Django would have to guess at the correct changes to make. There is
|
|
|
|
|
a risk that critical data would be lost in the process.
|
|
|
|
|
|
|
|
|
|
If you have made changes to a model and wish to alter the database tables
|
|
|
|
|
to match, use the ``sql`` command to display the new SQL structure and
|
|
|
|
|
compare that to your existing table schema to work out the changes.
|
|
|
|
|
|
2006-05-19 13:07:33 +08:00
|
|
|
|
If you're installing the ``django.contrib.auth`` application, ``syncdb`` will
|
|
|
|
|
give you the option of creating a superuser immediately.
|
2006-05-19 12:12:16 +08:00
|
|
|
|
|
2007-06-01 18:11:43 +08:00
|
|
|
|
``syncdb`` will also search for and install any fixture named ``initial_data``
|
|
|
|
|
with an appropriate extension (e.g. ``json`` or ``xml``). See the
|
|
|
|
|
documentation for ``loaddata`` for details on the specification of fixture
|
|
|
|
|
data files.
|
2007-03-01 21:11:08 +08:00
|
|
|
|
|
2009-11-12 21:58:32 +08:00
|
|
|
|
The :djadminopt:`--noinput` option may be provided to suppress all user
|
|
|
|
|
prompts.
|
2007-09-10 05:57:59 +08:00
|
|
|
|
|
2009-12-22 23:18:51 +08:00
|
|
|
|
The :djadminopt:`--database` option can be used to specify the database to
|
|
|
|
|
synchronize.
|
|
|
|
|
|
2013-08-05 08:29:55 +08:00
|
|
|
|
``--no-initial-data``
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~
|
2012-06-05 22:46:15 +08:00
|
|
|
|
|
|
|
|
|
.. versionadded:: 1.5
|
|
|
|
|
|
|
|
|
|
Use ``--no-initial-data`` to avoid loading the initial_data fixture.
|
|
|
|
|
|
2009-11-12 21:58:32 +08:00
|
|
|
|
test <app or test identifier>
|
|
|
|
|
-----------------------------
|
2007-09-10 05:57:59 +08:00
|
|
|
|
|
2009-11-12 21:58:32 +08:00
|
|
|
|
.. django-admin:: test
|
2006-08-30 02:04:09 +08:00
|
|
|
|
|
2012-12-22 08:59:06 +08:00
|
|
|
|
Runs tests for all installed models. See :doc:`/topics/testing/index` for more
|
2008-08-24 06:25:40 +08:00
|
|
|
|
information.
|
2007-08-17 07:05:00 +08:00
|
|
|
|
|
2010-01-01 02:48:28 +08:00
|
|
|
|
.. django-admin-option:: --failfast
|
2009-12-14 00:24:36 +08:00
|
|
|
|
|
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 16:33:58 +08:00
|
|
|
|
The ``--failfast`` option can be used to stop running tests and report the
|
|
|
|
|
failure immediately after a test fails.
|
2009-12-14 00:24:36 +08:00
|
|
|
|
|
2011-06-10 16:26:05 +08:00
|
|
|
|
.. django-admin-option:: --testrunner
|
|
|
|
|
|
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 16:33:58 +08:00
|
|
|
|
The ``--testrunner`` option can be used to control the test runner class that
|
|
|
|
|
is used to execute tests. If this value is provided, it overrides the value
|
|
|
|
|
provided by the :setting:`TEST_RUNNER` setting.
|
|
|
|
|
|
|
|
|
|
.. django-admin-option:: --liveserver
|
|
|
|
|
|
|
|
|
|
The ``--liveserver`` option can be used to override the default address where
|
|
|
|
|
the live server (used with :class:`~django.test.LiveServerTestCase`) is
|
|
|
|
|
expected to run from. The default value is ``localhost:8081``.
|
2011-06-10 16:26:05 +08:00
|
|
|
|
|
2007-09-10 05:57:59 +08:00
|
|
|
|
testserver <fixture fixture ...>
|
2007-08-17 07:05:00 +08:00
|
|
|
|
--------------------------------
|
|
|
|
|
|
2009-11-12 21:58:32 +08:00
|
|
|
|
.. django-admin:: testserver
|
|
|
|
|
|
2007-08-17 07:05:00 +08:00
|
|
|
|
Runs a Django development server (as in ``runserver``) using data from the
|
|
|
|
|
given fixture(s).
|
|
|
|
|
|
|
|
|
|
For example, this command::
|
|
|
|
|
|
|
|
|
|
django-admin.py testserver mydata.json
|
|
|
|
|
|
|
|
|
|
...would perform the following steps:
|
|
|
|
|
|
2012-12-22 08:59:06 +08:00
|
|
|
|
1. Create a test database, as described in :ref:`the-test-database`.
|
2011-10-14 08:12:01 +08:00
|
|
|
|
2. Populate the test database with fixture data from the given fixtures.
|
|
|
|
|
(For more on fixtures, see the documentation for ``loaddata`` above.)
|
|
|
|
|
3. Runs the Django development server (as in ``runserver``), pointed at
|
|
|
|
|
this newly created test database instead of your production database.
|
2007-08-17 07:05:00 +08:00
|
|
|
|
|
|
|
|
|
This is useful in a number of ways:
|
|
|
|
|
|
2012-12-22 08:59:06 +08:00
|
|
|
|
* When you're writing :doc:`unit tests </topics/testing/overview>` of how your views
|
2011-10-14 08:12:01 +08:00
|
|
|
|
act with certain fixture data, you can use ``testserver`` to interact with
|
|
|
|
|
the views in a Web browser, manually.
|
2007-08-17 07:05:00 +08:00
|
|
|
|
|
2011-10-14 08:12:01 +08: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
|
|
|
|
|
database to a fixture (using the ``dumpdata`` command, explained above),
|
|
|
|
|
then use ``testserver`` to run your Web application with that data. With
|
|
|
|
|
this arrangement, you have the flexibility of messing up your data
|
|
|
|
|
in any way, knowing that whatever data changes you're making are only
|
|
|
|
|
being made to a test database.
|
2007-08-17 07:05:00 +08:00
|
|
|
|
|
2007-09-15 03:17:15 +08:00
|
|
|
|
Note that this server does *not* automatically detect changes to your Python
|
|
|
|
|
source code (as ``runserver`` does). It does, however, detect changes to
|
|
|
|
|
templates.
|
2007-08-26 07:56:33 +08:00
|
|
|
|
|
2009-11-12 21:58:32 +08:00
|
|
|
|
.. django-admin-option:: --addrport [port number or ipaddr:port]
|
2007-09-15 03:17:15 +08:00
|
|
|
|
|
|
|
|
|
Use ``--addrport`` to specify a different port, or IP address and port, from
|
2010-11-26 21:33:53 +08:00
|
|
|
|
the default of ``127.0.0.1:8000``. This value follows exactly the same format and
|
2010-10-24 00:37:51 +08:00
|
|
|
|
serves exactly the same function as the argument to the ``runserver`` command.
|
2007-09-15 03:17:15 +08:00
|
|
|
|
|
|
|
|
|
Examples:
|
|
|
|
|
|
|
|
|
|
To run the test server on port 7000 with ``fixture1`` and ``fixture2``::
|
|
|
|
|
|
|
|
|
|
django-admin.py testserver --addrport 7000 fixture1 fixture2
|
2007-09-17 00:01:25 +08:00
|
|
|
|
django-admin.py testserver fixture1 fixture2 --addrport 7000
|
2007-09-15 03:17:15 +08:00
|
|
|
|
|
|
|
|
|
(The above statements are equivalent. We include both of them to demonstrate
|
2007-09-17 00:01:25 +08:00
|
|
|
|
that it doesn't matter whether the options come before or after the fixture
|
|
|
|
|
arguments.)
|
2007-09-15 03:17:15 +08:00
|
|
|
|
|
2007-11-30 02:15:38 +08:00
|
|
|
|
To run on 1.2.3.4:7000 with a ``test`` fixture::
|
2007-09-15 03:17:15 +08:00
|
|
|
|
|
|
|
|
|
django-admin.py testserver --addrport 1.2.3.4:7000 test
|
|
|
|
|
|
2010-06-21 20:09:25 +08:00
|
|
|
|
The :djadminopt:`--noinput` option may be provided to suppress all user
|
|
|
|
|
prompts.
|
|
|
|
|
|
2007-09-10 05:57:59 +08:00
|
|
|
|
validate
|
|
|
|
|
--------
|
2005-08-11 04:29:55 +08:00
|
|
|
|
|
2009-11-12 21:58:32 +08:00
|
|
|
|
.. django-admin:: validate
|
|
|
|
|
|
2011-05-30 01:41:04 +08:00
|
|
|
|
Validates all installed models (according to the :setting:`INSTALLED_APPS`
|
|
|
|
|
setting) and prints validation errors to standard output.
|
2007-09-10 05:57:59 +08:00
|
|
|
|
|
2010-10-24 00:37:51 +08: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``
|
|
|
|
|
-----------------------
|
|
|
|
|
|
|
|
|
|
changepassword
|
|
|
|
|
~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
|
|
.. django-admin:: changepassword
|
|
|
|
|
|
|
|
|
|
This command is only available if Django's :doc:`authentication system
|
2012-12-29 03:00:11 +08:00
|
|
|
|
</topics/auth/index>` (``django.contrib.auth``) is installed.
|
2010-10-24 00:37:51 +08:00
|
|
|
|
|
|
|
|
|
Allows changing a user's password. It prompts you to enter twice the password of
|
|
|
|
|
the user given as parameter. If they both match, the new password will be
|
|
|
|
|
changed immediately. If you do not supply a user, the command will attempt to
|
|
|
|
|
change the password whose username matches the current user.
|
|
|
|
|
|
2012-03-13 04:05:48 +08:00
|
|
|
|
Use the ``--database`` option to specify the database to query for the user. If
|
|
|
|
|
it's not supplied, Django will use the ``default`` database.
|
2012-03-05 12:17:55 +08:00
|
|
|
|
|
2010-10-24 00:37:51 +08:00
|
|
|
|
Example usage::
|
|
|
|
|
|
|
|
|
|
django-admin.py changepassword ringo
|
|
|
|
|
|
|
|
|
|
createsuperuser
|
|
|
|
|
~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
|
|
.. django-admin:: createsuperuser
|
|
|
|
|
|
|
|
|
|
This command is only available if Django's :doc:`authentication system
|
2012-12-29 03:00:11 +08:00
|
|
|
|
</topics/auth/index>` (``django.contrib.auth``) is installed.
|
2010-10-24 00:37:51 +08:00
|
|
|
|
|
|
|
|
|
Creates a superuser account (a user who has all permissions). This is
|
|
|
|
|
useful if you need to create an initial superuser account but did not
|
|
|
|
|
do so during ``syncdb``, or if you need to programmatically generate
|
|
|
|
|
superuser accounts for your site(s).
|
|
|
|
|
|
|
|
|
|
When run interactively, this command will prompt for a password for
|
|
|
|
|
the new superuser account. When run non-interactively, 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.
|
|
|
|
|
|
|
|
|
|
.. django-admin-option:: --username
|
|
|
|
|
.. django-admin-option:: --email
|
|
|
|
|
|
2011-04-02 00:10:22 +08:00
|
|
|
|
The username and email address for the new account can be supplied by
|
2010-10-24 00:37:51 +08: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.
|
|
|
|
|
|
2012-03-13 04:05:48 +08:00
|
|
|
|
Use the ``--database`` option to specify the database into which the superuser
|
|
|
|
|
object will be saved.
|
2012-03-05 12:17:55 +08:00
|
|
|
|
|
2010-10-24 00:37:51 +08:00
|
|
|
|
``django.contrib.gis``
|
|
|
|
|
----------------------
|
|
|
|
|
|
|
|
|
|
ogrinspect
|
|
|
|
|
~~~~~~~~~~
|
|
|
|
|
|
|
|
|
|
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 17:49:46 +08:00
|
|
|
|
``django.contrib.sessions``
|
|
|
|
|
---------------------------
|
|
|
|
|
|
|
|
|
|
clearsessions
|
|
|
|
|
~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
|
|
.. django-admin:: clearsessions
|
|
|
|
|
|
2013-05-29 08:14:01 +08:00
|
|
|
|
.. versionadded:: 1.5
|
|
|
|
|
|
2012-10-27 17:49:46 +08:00
|
|
|
|
Can be run as a cron job or directly to clean out expired sessions.
|
|
|
|
|
|
2010-10-24 00:37:51 +08:00
|
|
|
|
``django.contrib.sitemaps``
|
|
|
|
|
---------------------------
|
|
|
|
|
|
|
|
|
|
ping_google
|
|
|
|
|
~~~~~~~~~~~
|
|
|
|
|
|
|
|
|
|
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``
|
|
|
|
|
------------------------------
|
|
|
|
|
|
|
|
|
|
collectstatic
|
|
|
|
|
~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
|
|
This command is only available if the :doc:`static files application
|
2013-03-08 03:15:39 +08:00
|
|
|
|
</howto/static-files/index>` (``django.contrib.staticfiles``) is installed.
|
2010-10-24 00:37:51 +08:00
|
|
|
|
|
|
|
|
|
Please refer to its :djadmin:`description <collectstatic>` in the
|
|
|
|
|
:doc:`staticfiles </ref/contrib/staticfiles>` documentation.
|
|
|
|
|
|
|
|
|
|
findstatic
|
|
|
|
|
~~~~~~~~~~
|
|
|
|
|
|
|
|
|
|
This command is only available if the :doc:`static files application
|
2013-03-08 03:15:39 +08:00
|
|
|
|
</howto/static-files/index>` (``django.contrib.staticfiles``) is installed.
|
2010-10-24 00:37:51 +08:00
|
|
|
|
|
|
|
|
|
Please refer to its :djadmin:`description <findstatic>` in the :doc:`staticfiles
|
|
|
|
|
</ref/contrib/staticfiles>` documentation.
|
|
|
|
|
|
2007-09-10 05:57:59 +08:00
|
|
|
|
Default options
|
|
|
|
|
===============
|
|
|
|
|
|
2010-10-24 00:37:51 +08:00
|
|
|
|
Although some commands may allow their own custom options, every command
|
2007-09-10 05:57:59 +08:00
|
|
|
|
allows for the following options:
|
2006-01-11 10:06:27 +08:00
|
|
|
|
|
2009-11-12 21:58:32 +08:00
|
|
|
|
.. django-admin-option:: --pythonpath
|
2005-10-07 01:22:23 +08:00
|
|
|
|
|
|
|
|
|
Example usage::
|
|
|
|
|
|
2006-05-02 09:31:56 +08:00
|
|
|
|
django-admin.py syncdb --pythonpath='/home/djangoprojects/myproject'
|
2005-10-07 01:22:23 +08:00
|
|
|
|
|
2005-10-07 01:27:13 +08:00
|
|
|
|
Adds the given filesystem path to the Python `import search path`_. If this
|
|
|
|
|
isn't provided, ``django-admin.py`` will use the ``PYTHONPATH`` environment
|
|
|
|
|
variable.
|
|
|
|
|
|
2006-01-11 10:06:27 +08:00
|
|
|
|
Note that this option is unnecessary in ``manage.py``, because it takes care of
|
|
|
|
|
setting the Python path for you.
|
|
|
|
|
|
2011-11-20 06:57:20 +08:00
|
|
|
|
.. _import search path: http://diveintopython.net/getting_to_know_python/everything_is_an_object.html
|
2005-10-07 01:22:23 +08:00
|
|
|
|
|
2009-11-12 21:58:32 +08:00
|
|
|
|
.. django-admin-option:: --settings
|
2006-08-31 22:29:47 +08:00
|
|
|
|
|
|
|
|
|
Example usage::
|
|
|
|
|
|
2007-09-10 05:57:59 +08:00
|
|
|
|
django-admin.py syncdb --settings=mysite.settings
|
2007-04-09 09:44:26 +08:00
|
|
|
|
|
2007-09-10 05:57:59 +08:00
|
|
|
|
Explicitly specifies the settings module to use. The settings module should be
|
|
|
|
|
in Python package syntax, e.g. ``mysite.settings``. If this isn't provided,
|
|
|
|
|
``django-admin.py`` will use the ``DJANGO_SETTINGS_MODULE`` environment
|
|
|
|
|
variable.
|
2006-09-24 16:22:52 +08:00
|
|
|
|
|
2008-01-02 13:08:25 +08:00
|
|
|
|
Note that this option is unnecessary in ``manage.py``, because it uses
|
2008-02-15 19:38:53 +08:00
|
|
|
|
``settings.py`` from the current project by default.
|
2006-09-24 16:22:52 +08:00
|
|
|
|
|
2009-11-12 21:58:32 +08:00
|
|
|
|
.. django-admin-option:: --traceback
|
2008-06-19 21:24:39 +08:00
|
|
|
|
|
|
|
|
|
Example usage::
|
|
|
|
|
|
|
|
|
|
django-admin.py syncdb --traceback
|
|
|
|
|
|
|
|
|
|
By default, ``django-admin.py`` will show a simple error message whenever an
|
2013-03-09 19:38:45 +08:00
|
|
|
|
:class:`~django.core.management.CommandError` occurs, but a full stack trace
|
|
|
|
|
for any other exception. If you specify ``--traceback``, ``django-admin.py``
|
|
|
|
|
will also output a full stack trace when a ``CommandError`` is raised.
|
|
|
|
|
|
|
|
|
|
.. versionchanged:: 1.6
|
2013-03-25 13:53:48 +08:00
|
|
|
|
|
2013-03-09 19:38:45 +08:00
|
|
|
|
Previously, Django didn't show a full stack trace by default for exceptions
|
|
|
|
|
other than ``CommandError``.
|
2008-06-19 21:24:39 +08:00
|
|
|
|
|
2009-11-12 21:58:32 +08:00
|
|
|
|
.. django-admin-option:: --verbosity
|
2008-10-02 20:57:13 +08:00
|
|
|
|
|
|
|
|
|
Example usage::
|
|
|
|
|
|
|
|
|
|
django-admin.py syncdb --verbosity 2
|
|
|
|
|
|
|
|
|
|
Use ``--verbosity`` to specify the amount of notification and debug information
|
|
|
|
|
that ``django-admin.py`` should print to the console.
|
|
|
|
|
|
2011-10-14 08:12:01 +08:00
|
|
|
|
* ``0`` means no output.
|
|
|
|
|
* ``1`` means normal output (default).
|
|
|
|
|
* ``2`` means verbose output.
|
|
|
|
|
* ``3`` means *very* verbose output.
|
2008-10-02 20:57:13 +08:00
|
|
|
|
|
2013-02-23 23:28:45 +08:00
|
|
|
|
.. django-admin-option:: --no-color
|
|
|
|
|
|
|
|
|
|
.. versionadded:: 1.7
|
|
|
|
|
|
|
|
|
|
Example usage::
|
|
|
|
|
|
|
|
|
|
django-admin.py sqlall --no-color
|
|
|
|
|
|
|
|
|
|
By default, ``django-admin.py`` will format the output to be colorized. For
|
|
|
|
|
example, errors will be printed to the console in red and SQL statements will
|
|
|
|
|
be syntax highlighted. To prevent this and have a plain text output, pass the
|
|
|
|
|
``--no-color`` option when running your command.
|
|
|
|
|
|
2009-11-12 21:58:32 +08:00
|
|
|
|
Common options
|
|
|
|
|
==============
|
|
|
|
|
|
2011-08-22 14:30:42 +08:00
|
|
|
|
The following options are not available on every command, but they are common
|
|
|
|
|
to a number of commands.
|
2009-11-12 21:58:32 +08:00
|
|
|
|
|
2009-12-22 23:18:51 +08:00
|
|
|
|
.. django-admin-option:: --database
|
|
|
|
|
|
|
|
|
|
Used to specify the database on which a command will operate. If not
|
|
|
|
|
specified, this option will default to an alias of ``default``.
|
|
|
|
|
|
|
|
|
|
For example, to dump data from the database with the alias ``master``::
|
|
|
|
|
|
|
|
|
|
django-admin.py dumpdata --database=master
|
|
|
|
|
|
|
|
|
|
.. django-admin-option:: --exclude
|
|
|
|
|
|
|
|
|
|
Exclude a specific application from the applications whose contents is
|
2013-03-22 17:50:45 +08:00
|
|
|
|
output. For example, to specifically exclude the ``auth`` application from
|
2009-12-22 23:18:51 +08:00
|
|
|
|
the output of dumpdata, you would call::
|
|
|
|
|
|
|
|
|
|
django-admin.py dumpdata --exclude=auth
|
|
|
|
|
|
|
|
|
|
If you want to exclude multiple applications, use multiple ``--exclude``
|
|
|
|
|
directives::
|
|
|
|
|
|
|
|
|
|
django-admin.py dumpdata --exclude=auth --exclude=contenttypes
|
|
|
|
|
|
2009-11-12 21:58:32 +08:00
|
|
|
|
.. django-admin-option:: --locale
|
|
|
|
|
|
|
|
|
|
Use the ``--locale`` or ``-l`` option to specify the locale to process.
|
|
|
|
|
If not provided all locales are processed.
|
|
|
|
|
|
|
|
|
|
.. django-admin-option:: --noinput
|
|
|
|
|
|
|
|
|
|
Use the ``--noinput`` option to suppress all user prompting, such as "Are
|
|
|
|
|
you sure?" confirmation messages. This is useful if ``django-admin.py`` is
|
|
|
|
|
being executed as an unattended, automated script.
|
|
|
|
|
|
2006-05-02 09:31:56 +08:00
|
|
|
|
Extra niceties
|
|
|
|
|
==============
|
|
|
|
|
|
2009-12-28 14:48:47 +08:00
|
|
|
|
.. _syntax-coloring:
|
|
|
|
|
|
2006-05-02 09:31:56 +08:00
|
|
|
|
Syntax coloring
|
|
|
|
|
---------------
|
|
|
|
|
|
2010-02-23 21:22:05 +08:00
|
|
|
|
The ``django-admin.py`` / ``manage.py`` commands will use pretty
|
|
|
|
|
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
|
|
|
|
|
another program.
|
2009-12-28 14:48:47 +08:00
|
|
|
|
|
|
|
|
|
The colors used for syntax highlighting can be customized. Django
|
|
|
|
|
ships with three color palettes:
|
|
|
|
|
|
2011-10-14 08:12:01 +08:00
|
|
|
|
* ``dark``, suited to terminals that show white text on a black
|
|
|
|
|
background. This is the default palette.
|
2009-12-28 14:48:47 +08:00
|
|
|
|
|
2011-10-14 08:12:01 +08:00
|
|
|
|
* ``light``, suited to terminals that show black text on a white
|
|
|
|
|
background.
|
2009-12-28 14:48:47 +08:00
|
|
|
|
|
2011-10-14 08:12:01 +08:00
|
|
|
|
* ``nocolor``, which disables syntax highlighting.
|
2009-12-28 14:48:47 +08:00
|
|
|
|
|
|
|
|
|
You select a palette by setting a ``DJANGO_COLORS`` environment
|
|
|
|
|
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 08:12:01 +08:00
|
|
|
|
* ``error`` - A major error.
|
|
|
|
|
* ``notice`` - A minor error.
|
|
|
|
|
* ``sql_field`` - The name of a model field in SQL.
|
|
|
|
|
* ``sql_coltype`` - The type of a model field in SQL.
|
|
|
|
|
* ``sql_keyword`` - A SQL keyword.
|
|
|
|
|
* ``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.
|
2009-12-28 14:48:47 +08:00
|
|
|
|
|
|
|
|
|
Each of these roles can be assigned a specific foreground and
|
|
|
|
|
background color, from the following list:
|
|
|
|
|
|
2011-10-14 08:12:01 +08:00
|
|
|
|
* ``black``
|
|
|
|
|
* ``red``
|
|
|
|
|
* ``green``
|
|
|
|
|
* ``yellow``
|
|
|
|
|
* ``blue``
|
|
|
|
|
* ``magenta``
|
|
|
|
|
* ``cyan``
|
|
|
|
|
* ``white``
|
2009-12-28 14:48:47 +08:00
|
|
|
|
|
|
|
|
|
Each of these colors can then be modified by using the following
|
|
|
|
|
display options:
|
|
|
|
|
|
2011-10-14 08:12:01 +08:00
|
|
|
|
* ``bold``
|
|
|
|
|
* ``underscore``
|
|
|
|
|
* ``blink``
|
|
|
|
|
* ``reverse``
|
|
|
|
|
* ``conceal``
|
2009-12-28 14:48:47 +08:00
|
|
|
|
|
2011-02-15 07:18:30 +08:00
|
|
|
|
A color specification follows one of the following patterns:
|
2009-12-28 14:48:47 +08:00
|
|
|
|
|
2011-10-14 08:12:01 +08:00
|
|
|
|
* ``role=fg``
|
|
|
|
|
* ``role=fg/bg``
|
|
|
|
|
* ``role=fg,option,option``
|
|
|
|
|
* ``role=fg/bg,option,option``
|
2009-12-28 14:48:47 +08: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
|
|
|
|
|
are then separated by semicolon. For example::
|
|
|
|
|
|
|
|
|
|
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 09:31:56 +08:00
|
|
|
|
|
|
|
|
|
Bash completion
|
|
|
|
|
---------------
|
|
|
|
|
|
|
|
|
|
If you use the Bash shell, consider installing the Django bash completion
|
|
|
|
|
script, which lives in ``extras/django_bash_completion`` in the Django
|
|
|
|
|
distribution. It enables tab-completion of ``django-admin.py`` and
|
|
|
|
|
``manage.py`` commands, so you can, for instance...
|
|
|
|
|
|
2011-10-14 08:12:01 +08:00
|
|
|
|
* Type ``django-admin.py``.
|
|
|
|
|
* Press [TAB] to see all available options.
|
|
|
|
|
* Type ``sql``, then [TAB], to see all available options whose names start
|
|
|
|
|
with ``sql``.
|
2007-09-22 00:19:20 +08:00
|
|
|
|
|
|
|
|
|
|
2010-08-20 03:27:44 +08:00
|
|
|
|
See :doc:`/howto/custom-management-commands` for how to add customized actions.
|
2010-12-05 04:58:07 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
==========================================
|
|
|
|
|
Running management commands from your code
|
|
|
|
|
==========================================
|
|
|
|
|
|
2012-03-03 01:13:53 +08:00
|
|
|
|
.. _call-command:
|
|
|
|
|
|
2010-12-05 04:58:07 +08:00
|
|
|
|
.. function:: django.core.management.call_command(name, *args, **options)
|
|
|
|
|
|
|
|
|
|
To call a management command from code use ``call_command``.
|
|
|
|
|
|
|
|
|
|
``name``
|
|
|
|
|
the name of the command to call.
|
|
|
|
|
|
|
|
|
|
``*args``
|
|
|
|
|
a list of arguments accepted by the command.
|
|
|
|
|
|
|
|
|
|
``**options``
|
|
|
|
|
named options accepted on the command-line.
|
|
|
|
|
|
|
|
|
|
Examples::
|
|
|
|
|
|
|
|
|
|
from django.core import management
|
|
|
|
|
management.call_command('flush', verbosity=0, interactive=False)
|
|
|
|
|
management.call_command('loaddata', 'test_data', verbosity=0)
|
2012-11-08 01:31:14 +08: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::
|
|
|
|
|
|
|
|
|
|
with open('/tmp/command_output') as f:
|
|
|
|
|
management.call_command('dumpdata', stdout=f)
|