Создание сайта на Python/Django: знакомство с Django Admin

Продолжаем создание сайта на Python и переходим от работы с интерактивной консолью Django к админ-панели. Админ-панель создается для управления сайтом и более удобного взаимодействия администраторов сайта с контентом. При этом, админ-панель изначально не рассчитана на рядовых пользователей, только для администраторов.

Создаем администратора (admin user)

Первым делом нам необходимо учетную запись администратора. Для этого выполняем в консоли команду и вводим данные пользователя:

python manage.py createsuperuser
# На запрос имени пользователя вводите логин.
Username: admin
# Далее требуется ввести email адрес
Email address: [email protected]
# Вводим пароль не менее 8 символов
Password:
Password (again):
# Получили подтверждение создания суперпользователя.
Superuser created successfully.

Вы можете вводить любые удобные для вас данные. При вводе поля Password симолы не будут отображаться. После создания пользователя можно переходить к работе с панелью администратора Django Admin.

Запускаем сервер разработки

Сайт администратора Django активирован по умолчанию. Давайте запустим сервер разработки и изучим Django Admin подробнее. Если сервер еще не запущен, то запустите его командой:

python manage.py runserver
# Performing system checks...
#
# System check identified no issues (0 silenced).
# March 25, 2019 - 15:23:41
# Django version 2.1.5, using settings 'mysite.settings'
# Starting development server at http://127.0.0.1:8000/
# Quit the server with CTRL-BREAK.

Теперь откройте веб-браузер согласно адресу запущенного сеовера. У меня он по-умолчанию http://127.0.0.1:8000/ и добавьте в конец адресной строки «/admin/», чтобы открыть страницу админ-панели. Выглядеть она будет примерно так:

Django administration - форма входа
Django administration – форма входа

Обратите внимание, что Django Admin доступен на разных языках. Экран входа в систему может отображаться на языке, выбранном в настройках вашего браузера при условии наличия перевода на этот язык в Django.

Исследуем Django Admin

Входим в систему администрирования, используя данные пользователя, созданного нами ранее. Если все работает правильно, то мы должны попасть на индексную страницу, которая будет выглядеть примерно так:

Django Admin index page
Django Admin index page

По-умолчанию мы видим секцию ссылок на управление группами и пользователями, которые автоматически подключаются Django.

Теперь давайте сделаем доступной возможность управлять опросами через админ-панель. Для зарегистрируем приложение polls следующим образом:

# Добавляем в файл polls/admin.py следующий код
from django.contrib import admin
from .models import Question

admin.site.register(Question)

Обновляем страницу админ-панели и чудесным образом видим новую секцию POLLS. Теперь мы можем добавлять Questions через панель. Посмотрим подробнее, какие функции нам доступны.

Django Admin с подключенным приложением Polls
Django Admin с подключенным приложением Polls

Базовые возможности Django Admin

Перейдя по ссылке “Questions” мы попадаем на страницу редактирования вопросов. Как видим, в списке уже есть вопрос, который был добавлен через интерактивную консоль в прошлой публикации.

Django Admin - Список вопросов
Django Admin – Список вопросов

Давайте попробуем отредактировать наш вопрос и посмотреть, какие возможности нам предоставляются. Для это переходим по ссылке “Что происходит?” или той которую вы добавляли, если вас вопрос отличается от моего. Видим страницу редактирования:

Django Admin - Форма редактирования вопроса (Question)
Django Admin – Форма редактирования вопроса (Question)

Представленную форму Django автоматически генерирует на основе полей модели Question из файла models.py. Для каждого типа поля сопоставлен определенный тип элемента формы редактирования. В нашем случае для CharField с текстом вопроса было создано простое текстовое поле ввода <input type=”text” …>. Для поля DateTimeField же была создана группа полей и JavaScript ссылок для удобного выбора даты.

Так же страница редактирования предлагает четыре кнопки для сохранения и удаления записи:

Save – простое сохранение изменений и возврат к перечню записей.
Save and continue editing – Сохраняет изменения и остается на странице редактирования.
Save and add another – сохраняет запись и открывает пустую форму добавления новой записи.
Delete – удаляет запись с переходом на страницу подтверждения удаления.

Так же доступна кнопочка History, перейдя по которой будет отображена страница с перечнем действий над этой записью. Отображается время, пользователь и перечень полей, которые были измненены.

История изменений записи в Django Admin
История изменений записи в Django Admin

На этом знакомство с Django Admin будем пока заканчивать, а перейдем к реализации внешней части сайта и добавлению нескольких Views.

Добавить комментарий

Ваш адрес email не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.