Создание сайта администрирования для моделей
Теперь, когда модель Post синхронизирована с базой данных, можно создать простой сайт администрирования, чтобы управлять постами блога.
Django идет в комплекте со встроенным интерфейсом администрирования, который широко используется для редактирования контента.
Сайт Django формируется динамически путем чтения метаданных моделей и предоставления готового к работе интерфейса для редактирования контента. Его можно использовать прямо «из коробки», сконфигурировав его так, чтобы ваши модели отображались в нем в том виде, в котором вы хотите.
Приложение django.contrib.admin уже вставлено в настроечный параметр INSTALLED_APPS, поэтому добавлять его нет необходимости.
Создание суперпользователя
Сперва необходимо создать пользователя, который будет иметь право управлять сайтом администрирования. Выполните приведенную ниже команду:
python manage.py createsuperuser
Вы увидите следующий ниже результат. Введите желаемое пользовательское имя, адрес электронной почты и пароль, как показано:
Username (leave blank to use 'admin'): admin
Email address: admin@admin.com
Password: ********
Password (again): ********
И вы увидите такое сообщение об успехе:
Superuser created successfully.
Мы только что создали пользователя-администратора с самым высоким уровнем разрешений.
Сайт администрирования
Следующей ниже командой запустите сервер разработки:
python manage.py runserver
Пройдите по URL-адресу http://127.0.0.1:8000/admin/ в своем браузере.
Вы должны увидеть страницу входа на сайт администрирования, как показано на рисунке:
Войдите на сайт администрирования, используя учетные данные пользователя, которые вы создали на предыдущем шаге.
Вы увидите индексную страницу сайта администрирования:
Модели Group и User, которые вы видите на приведенном выше скриншоте, являются частью встроенного в Django фреймворка аутентификации, расположенного в django.contrib.auth.
Если кликнуть по Users (Пользователи), то можно увидеть пользователя, которого вы создали ранее.
Добавление моделей на сайт администрирования
Давайте добавим модели блога на сайт администрирования.
Отредактируйте файл admin.py приложения blog, придав ему следующий вид:
from django.contrib import admin
from .models import Post
admin.site.register(Post)
Теперь перезагрузите сайт администрирования в своем браузере.
Вы должны увидеть свою модель Post на сайте, как показано ниже:
Все достаточно просто, не правда ли? При регистрации модели на сайте администрирования будет получен удобный интерфейс, сгенерированный путем интроспекции созданных разработчиком моделей, позволяющий простым способом выводить списки, редактировать, создавать и удалять объекты.
Кликните по ссылке Add (Добавить) напротив Posts (Посты), чтобы добавить новый пост.
Вы увидите форму, которую Django сгенерировал для модели динамически, как показано ниже:
Для каждого типа поля Django использует различные виджеты форм. Даже сложные поля, такие как поле DateTimeField, отображаются на странице с простым интерфейсом, таким как элемент выбора даты на языке JavaScript.
Заполним форму, обязательно установив у поля Status значение Published и кликните по кнопке Save(Сохранить). Вы будете перенаправлены на страницу списка постов с сообщением об успехе и только что созданным постом, как показано на рисунке ниже: