Создание сайта на 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 Admin доступен на разных языках. Экран входа в систему может отображаться на языке, выбранном в настройках вашего браузера при условии наличия перевода на этот язык в Django.
Исследуем Django Admin
Входим в систему администрирования, используя данные пользователя, созданного нами ранее. Если все работает правильно, то мы должны попасть на индексную страницу, которая будет выглядеть примерно так:

По-умолчанию мы видим секцию ссылок на управление группами и пользователями, которые автоматически подключаются Django.
Теперь давайте сделаем доступной возможность управлять опросами через админ-панель. Для зарегистрируем приложение polls следующим образом:
# Добавляем в файл polls/admin.py следующий код from django.contrib import admin from .models import Question admin.site.register(Question)
Обновляем страницу админ-панели и чудесным образом видим новую секцию POLLS. Теперь мы можем добавлять Questions через панель. Посмотрим подробнее, какие функции нам доступны.

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

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

Представленную форму Django автоматически генерирует на основе полей модели Question из файла models.py. Для каждого типа поля сопоставлен определенный тип элемента формы редактирования. В нашем случае для CharField с текстом вопроса было создано простое текстовое поле ввода <input type=”text” …>. Для поля DateTimeField же была создана группа полей и JavaScript ссылок для удобного выбора даты.
Так же страница редактирования предлагает четыре кнопки для сохранения и удаления записи:
Save – простое сохранение изменений и возврат к перечню записей.
Save and continue editing – Сохраняет изменения и остается на странице редактирования.
Save and add another – сохраняет запись и открывает пустую форму добавления новой записи.
Delete – удаляет запись с переходом на страницу подтверждения удаления.
Так же доступна кнопочка History, перейдя по которой будет отображена страница с перечнем действий над этой записью. Отображается время, пользователь и перечень полей, которые были измненены.

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