Данный инструмент позволяет получить доступ ко всем моделям, предварительно объявленных во всех приложения проекта. Есть возможность просматривать, удалять и редактировать нужные записи, а также использовать сортировку и различные фильтры. Кроме того, административный веб-сайт обеспечивает разграничение доступа, используя для этого встроенную подсистему.
За реализацию подсистемы отвечает стандартное приложение django.contrib.auth. За работу отвечает приложение django.contrib.admin. Оба приложения присутствуют в списке зарегистрированных по умолчанию.
Приложение django.contrib.auth использует специальные модели для хранения перечня зарегистрированных пользователей, а также информации о них, включая группы и права. Для корректной работы подсистемы необходимо, чтобы в используемой базе данных были сформированы соответствующие таблицы. Следовательно, разграничение доступа начнет работать только после выполнения первой миграции.
Также необходимо зарегистрировать суперпользователя – пользователя с максимальными привилегиями. Для этого необходимо остановить отладочный веб-сервер и ввести в командной строке:
manage.py createsuperuser
В ответ утилита запросит имя нового пользователя, электронную почту, пароль и его подтверждение:
Username (leave blank to use 'vlad'): admin_mob25 Email address: admin_mob25@mob25.com Password: Password (again):
Присутствуют определенные требования к вводимому паролю: не менее 8 символов, наличие цифр, буквы в разных регистрах. Если данные условия пользователь не соблюдает, утилита выдаст предупреждение, но спросит, создавать ли пользователя с данным паролем:
This password is too short. It must contain at least 8 characters. This password is too common. This password is entirely numeric. Bypass password validation and create anyway? [y/N]: y
Чтобы проигнорировать сообщение и создать суперпользователя необходимо ввести «y» и нажать клавишу <Enter>.
После успешного создания суперпользователя отобразится соответствующее сообщение:
Superuser created successfully.
Далее русифицируем наш проект Django. Для этого необходимо открыть модуль settings.py и найти строку:
LANGUAGE_CODE = 'en-us'
Данная переменная определяет код языка, который используется в интерфейсе административного сайта и при отображении системных сообщений. По умолчанию данный код соответствует английскому языку. Для русификации достаточно указать код русского языка:
LANGUAGE_CODE = 'ru'
Сохраним изменения, запустим отладочный веб-сервер и откроем страницу http://localhost:8000/admin/. Откроется форма для авторизации созданного ранее суперпользователя.
После авторизации отобразится страница со списком всех приложений, которые зарегистрированы в проекте и использующих какие-либо модели (они отображаются под названием приложения).
Стоит отметить, что на данном этапе в списке присутствует только стандартное приложение Пользователи и группы (именно так называется приложение django.contrib.auth), с двумя моделями – Пользователи и Группы. Созданное ранее приложение bboard отсутствует.
Чтобы созданное приложение появилось в интерфейсе административного сайта, его необходимо предварительно зарегистрировать его там. Откроем файл admin.py приложения bboard и внесем в код соответствующие правки:
from django.contrib import admin from .models import Bb admin.site.register(Bb)
У экземпляра класса AdminSite, который представляет собой непосредственно административный сайт и хранится в переменной site модуля django, вызывается метод register(). В качестве параметра методу передается ссылка на класс нужной модели (в нашем случае это Bb). После сохранения изменений новое приложение появится в интерфейсе административного сайта.
Название модели в данном списке представляет собой гиперссылку, которая открывает страницу с записями данной модели.
Данная страница предоставляет следующие инструменты:
- добавление новой записи. Для этого необходимо кликнуть по ссылке Добавить <имя класса>.
- если просто кликнуть на нужной записи откроется страница ее правки. Она похожа на страницу добавления новой записи, но дополнительно присутствует кнопка Удалить.
- если выбрать запись при помощи установки флажка в первой колонке, отобразится набор доступных для данной модели действий. Для этого необходимо раскрыть список Действия, выбрать нужную операцию и нажать кнопку Выполнить. Отобразится запрос с информацией о записях, к которым применяется действие, а также кнопки для подтверждения или отмены действия.