Создание сайта на 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 - форма входа](https://igorosa.com/wp-content/uploads/2019/03/django-admin-login-example.png)
Обратите внимание, что Django Admin доступен на разных языках. Экран входа в систему может отображаться на языке, выбранном в настройках вашего браузера при условии наличия перевода на этот язык в Django.
Исследуем Django Admin
Входим в систему администрирования, используя данные пользователя, созданного нами ранее. Если все работает правильно, то мы должны попасть на индексную страницу, которая будет выглядеть примерно так:
![Django Admin index page](https://igorosa.com/wp-content/uploads/2019/03/django-admin-index-page-example.png)
По-умолчанию мы видим секцию ссылок на управление группами и пользователями, которые автоматически подключаются Django.
Теперь давайте сделаем доступной возможность управлять опросами через админ-панель. Для зарегистрируем приложение polls следующим образом:
# Добавляем в файл polls/admin.py следующий код from django.contrib import admin from .models import Question admin.site.register(Question)
Обновляем страницу админ-панели и чудесным образом видим новую секцию POLLS. Теперь мы можем добавлять Questions через панель. Посмотрим подробнее, какие функции нам доступны.
![Django Admin с подключенным приложением Polls](https://igorosa.com/wp-content/uploads/2019/03/django-admin-index-page-2-example.png)
Базовые возможности Django Admin
Перейдя по ссылке “Questions” мы попадаем на страницу редактирования вопросов. Как видим, в списке уже есть вопрос, который был добавлен через интерактивную консоль в прошлой публикации.
![Django Admin - Список вопросов](https://igorosa.com/wp-content/uploads/2019/03/django-admin-Question-lists.png)
Давайте попробуем отредактировать наш вопрос и посмотреть, какие возможности нам предоставляются. Для это переходим по ссылке “Что происходит?” или той которую вы добавляли, если вас вопрос отличается от моего. Видим страницу редактирования:
![Django Admin - Форма редактирования вопроса (Question)](https://igorosa.com/wp-content/uploads/2019/03/django-admin-Question-edit.png)
Представленную форму Django автоматически генерирует на основе полей модели Question из файла models.py. Для каждого типа поля сопоставлен определенный тип элемента формы редактирования. В нашем случае для CharField с текстом вопроса было создано простое текстовое поле ввода <input type=”text” …>. Для поля DateTimeField же была создана группа полей и JavaScript ссылок для удобного выбора даты.
Так же страница редактирования предлагает четыре кнопки для сохранения и удаления записи:
Save – простое сохранение изменений и возврат к перечню записей.
Save and continue editing – Сохраняет изменения и остается на странице редактирования.
Save and add another – сохраняет запись и открывает пустую форму добавления новой записи.
Delete – удаляет запись с переходом на страницу подтверждения удаления.
Так же доступна кнопочка History, перейдя по которой будет отображена страница с перечнем действий над этой записью. Отображается время, пользователь и перечень полей, которые были измненены.
![История изменений записи в Django Admin](https://igorosa.com/wp-content/uploads/2019/03/django-admin-Question-edit-history.png)
На этом знакомство с Django Admin будем пока заканчивать, а перейдем к реализации внешней части сайта и добавлению нескольких Views.