Polished the admin overview docs.
@@ -25,41 +25,39 @@ Overview
The admin is enabled in the default project template used by
:djadmin:`startproject`.
-For reference, here are the requirements:
+If you're not using the default project template, here are the requirements:
-1. Add ``'django.contrib.admin'`` to your :setting:`INSTALLED_APPS` setting.
+#. Add ``'django.contrib.admin'`` and its dependencies -
+ :mod:`django.contrib.auth`, :mod:`django.contrib.contenttypes`,
+ :mod:`django.contrib.messages`, and :mod:`django.contrib.sessions` - to your
+ :setting:`INSTALLED_APPS` setting.
-2. The admin has four dependencies - :mod:`django.contrib.auth`,
- :mod:`django.contrib.contenttypes`,
- :mod:`django.contrib.messages` and
- :mod:`django.contrib.sessions`. If these applications are not
- in your :setting:`INSTALLED_APPS` list, add them.
+#. Configure a :class:`~django.template.backends.django.DjangoTemplates`
+ backend in your :setting:`TEMPLATES` setting with
+ ``django.contrib.auth.context_processors.auth`` and
+ ``django.contrib.messages.context_processors.messages`` in
+ the ``'context_processors'`` option of :setting:`OPTIONS
+ <TEMPLATES-OPTIONS>`.
-3. Add ``django.contrib.auth.context_processors.auth`` and
- ``django.contrib.messages.context_processors.messages`` to
- the ``'context_processors'`` option of the ``DjangoTemplates`` backend
- defined in your :setting:`TEMPLATES` as well as
+#. If you've customized the :setting:`MIDDLEWARE` setting,
:class:`django.contrib.auth.middleware.AuthenticationMiddleware` and
- :class:`django.contrib.messages.middleware.MessageMiddleware` to
- :setting:`MIDDLEWARE`. These are all active by default, so you only need to
- do this if you've manually tweaked the settings.
+ :class:`django.contrib.messages.middleware.MessageMiddleware` must be
+ included.
-4. Determine which of your application's models should be editable in the
- admin interface.
+5. :ref:`Hook the admin's URLs into your URLconf
+ <hooking-adminsite-to-urlconf>`.
-5. For each of those models, optionally create a ``ModelAdmin`` class that
- encapsulates the customized admin functionality and options for that
- particular model.
+After you've taken these steps, you'll be able to use the admin site by
+visiting the URL you hooked it into (``/admin/``, by default).
-6. Instantiate an ``AdminSite`` and tell it about each of your models and
- ``ModelAdmin`` classes.
-
-7. Hook the ``AdminSite`` instance into your URLconf.
+If you need to create a user to login with, use the :djadmin:`createsuperuser`
+command. By default, logging in to the admin requires that the user has the
+:attr:`~.User.is_superuser` or :attr:`~.User.is_staff` attribute set to
+``True``.
-After you've taken these steps, you'll be able to use your Django admin site
-by visiting the URL you hooked it into (``/admin/``, by default). If you need
-to create a user to login with, you can use the :djadmin:`createsuperuser`
-command.
+Finally, determine which of your application's models should be editable in the
+admin interface. For each of those models, register them with the admin as
+described in :class:`ModelAdmin`.
Other topics
------------
@@ -2898,6 +2896,8 @@ Templates can override or extend base admin templates as described in
abstract. and ``django.contrib.admin.sites.AlreadyRegistered`` if a model
is already registered.
+.. _hooking-adminsite-to-urlconf:
+
Hooking ``AdminSite`` instances into your URLconf
-------------------------------------------------
