diff --git a/docs/ref/contrib/admin/index.txt b/docs/ref/contrib/admin/index.txt index ba0406f802..d317ad4083 100644 --- a/docs/ref/contrib/admin/index.txt +++ b/docs/ref/contrib/admin/index.txt @@ -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 + `. -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 + `. -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. +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``. -7. Hook the ``AdminSite`` instance into your URLconf. - -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 -------------------------------------------------