Как включить и подключить интерфейс администратора Django

Введение

Если вы следовали за серией по разработке Django, вы начали создание приложения Django, подключили ваше приложение к MySQL и создали модели базы данных для данных Posts и Comments в вашем веб-приложении блога.

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

Следует отметить, что официальная документация Django указывает, что хотя это идеально для внутреннего использования организации, не рекомендуется создавать веб-приложение вокруг автоматически созданного административного интерфейса Django. Если вы обнаружите, что ваш интерфейс должен быть более процессорно-центрированным или если он скрывает детали реализации таблиц и полей базы данных, лучше написать свои собственные представления для административной части.

Предварительные требования

Этот учебник является частью серии Разработка с использованием Django и является продолжением этой серии.

Если вы не следовали за этой серией, мы делаем следующие предположения:

  • У вас установлена Django версии 4 или выше.
  • Вы подключили свое Django приложение к базе данных. Мы используем MySQL, и вы можете установить это соединение, следуя второй части серии Django “Как создать Django приложение и подключить его к базе данных”.
  • Вы работаете с операционной системой на основе Unix, предпочтительно с облачным сервером Ubuntu 22.04, так как это система, на которой мы тестировали. Если вы хотите установить Django в подобной среде, обратитесь к нашему учебнику “Как установить Django и настроить среду разработки на Ubuntu 22.04”.Поскольку этот учебник в основном занимается интерфейсом Django Admin, вы можете следовать за ним даже если у вас немного другая настройка.

Шаг 1 – Включение администратора

Каждый раз, когда мы начинаем работу в Python и Django, мы должны активировать наше виртуальное окружение Python и перейти в корневую директорию нашего приложения. Если вы следовали за серией, вы можете сделать это, набрав следующее.

  1. cd ~/my_blog_app
  2. . env/bin/activate

Чтобы включить административный интерфейс Django, нам нужно убедиться, что наше приложение является частью списка INSTALLED_APPS в файле settings.py.

Перейдите в директорию файла настроек:

  1. cd ~/my_blog_app/blog/blog/

Затем откройте файл settings.py. Если его еще нет, добавьте django.contrib.admin в список INSTALLED_APPS, используя текстовый редактор, например, nano.

  1. nano settings.py

Секция INSTALLED_APPS файла должна быть похожа на приведенный ниже файл. Наше приложение в списке первое, 'blogsite', но если вы создали приложение с другим именем, убедитесь, что это приложение перечислено в этом файле, как показано.

settings.py
...
# Определение приложений
INSTALLED_APPS = [
    'blogsite',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]
...

Не забудьте сохранить и закрыть файл, если внесли изменения. В nano это можно сделать, нажав CTRL и X, затем Y, а затем ENTER.

Теперь мы можем открыть файл urls.py, снова с помощью nano или другого текстового редактора.

  1. nano urls.py

Под комментарием вверху файл должен выглядеть примерно так.

urls.py
"""
from django.contrib import admin
from django.urls import path

urlpatterns = [
    path('admin/', admin.site.urls),
]

Если файл отличается от приведенного выше, скопируйте и вставьте строки выше в ваш файл urls.py.

Теперь, когда мы убедились, что наш проект веб-приложения Django имеет соответствующий код в файлах settings.py и urls.py, мы знаем, что наше приложение будет иметь доступ к моделям администратора и пользовательскому интерфейсу администратора.

Шаг 2 — Проверка, что Admin является установленным приложением

Затем мы должны провести миграцию моделей в базу данных, чтобы она подхватила новые добавленные модели администратора.

Перейдите в каталог, где расположен файл manage.py.

  1. cd ~/my_blog_app/blog

Не забудьте выполнить команду migrate при каждом внесении изменений в models, например, так.

  1. python manage.py migrate

Если мы не внесли никаких изменений в указанные выше файлы, мы должны получить выходные данные, подобные следующим при выполнении команды migrate.

Output
Operations to perform: Apply all migrations: admin, auth, blogsite, contenttypes, sessions Running migrations: No migrations to apply.

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

Теперь мы можем запустить сервер, выполнив следующую команду. Вы можете заменить 0.0.0.0 своим IP-адресом.

  1. python manage.py runserver 0.0.0.0:8000

Затем перейдите по URL-адресу панели администратора в выбранном вами браузере. Обязательно введите IP-адрес вашего сервера.

http://your-server-ip:8000/admin/

Вы получите экран входа, подобный этому.

Достигнув этого экрана, мы узнаем, что успешно включили приложение администратора.

Хотя мы уже включили приложение, мы можем еще не настроили учетную запись администратора Django. Мы можем создать учетную запись администратора, чтобы войти на следующем этапе.

Шаг 3 — Создание учетной записи суперпользователя администратора

Если у вас уже есть учетная запись администратора и вы можете войти на страницу администратора, вы можете пропустить этот шаг.

Откройте новый терминал для подключения к серверу, или отключите приложение Django, нажав CTRL и C, чтобы мы могли работать в программной среде терминала нашего сервера.

Django позволяет создавать учетную запись суперпользователя, что мы можем сделать, запустив файл manage.py для запуска процесса создания суперпользователя.

  1. python manage.py createsuperuser

После этого нам будет предложено заполнить данные для имени пользователя, электронной почты и пароля. В этом учебнике мы создадим учетную запись администратора с именем пользователя admin_user, электронной почтой [email protected] и паролем admin123. Вы должны заполнить эту информацию с учетом ваших собственных предпочтений и обязательно использовать безопасный пароль, который вы запомните.

Output
Username (leave blank to use 'root'): admin_user Email address: [email protected]

Затем введите свой пароль дважды, когда увидите приглашение Password:. При вводе пароля вы не увидите вывода от нажатия клавиш. Нажмите enter после каждого приглашения, чтобы подтвердить ваш пароль.

Output
Password: Password (again):

На данный момент у нас есть учетная запись администратора с именем пользователя admin_user и паролем admin123.

Давайте войдем и исследуем, что есть на нашей странице администратора.

При необходимости запустите приложение Django снова с помощью python manage.py runserver 0.0.0.0:8000 и затем снова перейдите по адресу http://your-server-ip:8000/admin/, чтобы попасть на страницу входа в административную панель. Затем войдите с именем пользователя и паролем, которые вы только что создали.

После успешного входа вы получите следующую страницу.

Далее нам нужно будет подключить наше приложение блога к административной панели.

Шаг 4 — Создание шаблонов URL для сообщений и комментариев

На предыдущем этапе мы успешно вошли в интерфейс администратора, но вы могли заметить, что наше приложение блога пока еще недоступно там. Чтобы заполнить наш интерфейс администратора приложением блога, нам нужно добавить и зарегистрировать его с соответствующими моделями Post и Comment.

Для этого мы создадим пустой файл с именем urls.py в каталоге blogsite, следуя такому формату:

  1. touch ~/my_blog_app/blog/blogsite/urls.py

В этом файле мы добавим шаблон URL для нашего приложения блога, чтобы мы могли получить к нему доступ через интерфейс администратора.

Перейдите в расположение этого файла urls.py, который мы только что создали.

  1. cd ~/my_blog_app/blog/blogsite/

Затем откройте файл с помощью nano, например.

  1. nano urls.py

Добавьте следующие строки кода в файл.

urls.py
from django.urls import path
from . import views
urlpatterns = [
    path('$/', views.posts, name='posts'),
    path('$/', views.comments, name='comments'),
]

Это выражения шаблонов URL, необходимые для того, чтобы наше приложение имело доступ к views для Постов и Комментариев. Мы пока не создали этих views, но это будет рассмотрено позже в этой серии.

Шаг 5 — Подключение блога к административной панели

Подключение нашего блога к административному интерфейсу позволит нам видеть ссылки как на Посты, так и на Комментарии внутри панели администратора. В данный момент панель отображает ссылки только на Группы и Пользователей.

Для соединения этих двух частей нам нужно зарегистрировать наши модели Постов и Комментариев в файле администратора для blogsite.

Перейдите в каталог blogsite:

  1. cd ~/my_blog_app/blog/blogsite

Затем откройте файл admin.py в текстовом редакторе по вашему выбору.

  1. nano admin.py

Файл будет заполнен оператором импорта и комментарием.

admin.py
from django.contrib import admin

# Зарегистрируйте здесь ваши модели.

Вам следует отредактировать файл так, чтобы он содержал следующий код для поддержки нашего приложения.

admin.py
from django.contrib import admin
from blogsite.models import Post
from blogsite.models import Comment


admin.site.register(Post)
admin.site.register(Comment)

Когда вы будете удовлетворены файлом, сохраните и закройте его.

Вы сейчас зарегистрировали модели Post и Comment в админ-панели. Это позволит интерфейсу администратора обнаружить эти модели и показать их пользователю, который вошел в систему и просматривает панель администратора.

Шаг 6 — Проверьте, что приложение Blog добавлено в админ-панель

Теперь, когда вы добавили соответствующий код Python, запустите сервер. Откройте http://your-server-ip:8000/admin и войдите в административную панель, используя ваши учетные данные, если вы еще не вошли в систему. В этом учебнике мы входили под именем пользователя admin_user и паролем admin123.

Теперь, когда вы вошли в систему, вам должна быть предоставлена следующая веб-страница. Если она не изменилась с предыдущего раза, возможно, вам нужно обновить браузер.

Это подтверждает, что мы теперь подключили наше приложение, blogsite, к панели администратора Django.

Когда вы закончите тестирование вашего приложения, вы можете нажать CTRL + C, чтобы остановить выполнение сервера Django. Это вернет вас в ваше рабочее окружение.

Когда вы будете готовы покинуть ваше рабочее окружение Python, вы можете выполнить команду deactivate:

  1. deactivate

Деактивация вашего рабочего окружения вернет вас к приглашению командной строки.

Заключение

В этом учебнике вы успешно активировали административный интерфейс, создали вход для администратора и зарегистрировали модели Post и Comment в административном разделе.

Интерфейс администратора Django – это то, как вы сможете создавать сообщения и отслеживать комментарии на своем блоге.

В следующей части серии мы будем создавать views для приложения блога.

Source:
https://www.digitalocean.com/community/tutorials/how-to-enable-and-connect-the-django-admin-interface