Как настроить сайт администратора Django
Сайт администратора Django предоставляет разработчикам простой, но эффективный способ управления своими моделями и создания устойчивых проектов. Он позволяет создавать, просматривать, обновлять и удалять записи из ваших приложений.
В этой статье вы узнаете, как зарегистрировать свой models
на сайте администратора, создать учетную запись суперпользователя, войти на свой сайт и пользоваться им, а также настроить свой сайт администратора.
Если вы, как разработчик, задумываетесь о создании проекта Django или находитесь в процессе создания проекта, создание сайта администратора Django является следующим шагом после создания вашей модели Django.
Как зарегистрировать Ваших моделей
Зарегистрируйте свои модели в файле admin.py
. Регистрируя свой models
, вы даете возможность Django генерировать формы на основе информации, содержащейся в модели. Он также служит формой документации для вашего проекта и позволяет вам безопасно управлять данными.
Ниже описано, как зарегистрировать свой models
:
from django.contrib import admin
from .models import Author, Genre, Book, BookInstance, Language
admin.site.register(Book)
admin.site.register(Author)
admin.site.register(Genre)
admin.site.register(BookInstance)
admin.site.register(Language)
Первая строка импортирует django.contrib.admin
. Она включает администратора Django для вашего проекта и позволяет вам получить к нему доступ по определенному URL (/admin/) в вашем веб-браузере.
Вторая строка кода импортирует ваш models
, в то время как в последних четырех строках кода вызывается admin.site.register
для регистрации каждого из них.
Ваш models
может быть больше или меньше, в зависимости от того, насколько сложен ваш проект.
Как создать суперпользователя
Учетная запись суперпользователя позволяет вам входить на сайт администратора, создавать записи и управлять объектами.
Следующая команда создаст учетную запись суперпользователя с полным доступом к сайту администратора и всеми необходимыми разрешениями:
# For macOS/Linux
python3 manage.py createsuperuser
# For Windows
py manage.py createsuperuser
Вам будет предложено ввести имя пользователя, адрес электронной почты и пароль. После завершения выполнения этой команды у вас будет учетная запись суперпользователя, и вы сможете перезапустить сервер разработки и проверить свои данные для входа, используя следующую команду:
# For macOS/Linux
python3 manage.py runserver
# For Windows
py manage.py runserver
При выполнении этих команд убедитесь, что вы находитесь в том же каталоге, что и manage.py
.
Как войти на свой сайт и пользоваться им
Чтобы войти на свой сайт, откройте свой URL-адрес /admin
(или http://127.0.0.1:8000/admin) в вашем браузере. Вы увидите страницу, которая выглядит следующим образом:
Страница входа в систему администратора Django.
Введите данные своей учетной записи суперпользователя, нажмите "Войти", и вы увидите новую страницу, которая выглядит следующим образом:
Домашняя страница администратора Django.
Новая страница выше - это сайт администратора Django, на котором отображаются все зарегистрированные модели.
Нажмите на ссылку добавить рядом с каждой моделью, чтобы начать создавать свои записи.
После добавления записи в модель нажмите на кнопку SAVE
, Save and add another
, или Save and continue editing
, чтобы сохранить запись. Ваш экран должен выглядеть так, как показано ниже:
3 варианта сохранения на сайте администратора Django.
На скриншотах выше показаны только примеры того, как выглядит сайт администратора Django. В зависимости от потребностей вашего проекта, ваши модели и поля могут отличаться от примеров в этой статье.
Как настроить свой сайт администратора
Django отлично справляется с созданием вашего сайта администратора, используя информацию о моделях, которые вы регистрируете. Он также позволяет вам настроить интерфейс администратора в соответствии с потребностями вашего проекта.
В следующих разделах будет показано, как выполнить эти настройки.
Как зарегистрировать ModelAdmin
Класс
Класс ModelAdmin
представляет модель в вашем интерфейсе администратора. Зарегистрировав этот класс, вы можете настроить поведение конкретной модели в вашем интерфейсе администратора. Это также упорядочивает вашу кодовую базу и упрощает ее обслуживание:
# Comment out your original registeration
# admin.site.register(Author)
# Define the admin class
class AuthorAdmin(admin.ModelAdmin):
pass
# Register the admin class with the model it represents
admin.site.register(Author, AuthorAdmin)
Приведенный выше фрагмент кода определяет и регистрирует пустой класс администратора для модели Author.
Всегда комментируйте свою первоначальную регистрацию перед регистрацией класса ModelAdmin
.
Как настроить представление списка
Учитывая приведенную выше модель, если у вас несколько авторов или вам необходимо отобразить дополнительную информацию об авторах, метод list_display
позволяет настроить представление списка.
Ниже приведен пример того, как настроить свой интерфейс, используя метод list_display
:
class AuthorAdmin(admin.ModelAdmin):
list_display = ('last_name', 'first_name', 'date_of_birth', 'date_of_death',)
Приведенный выше фрагмент кода показывает класс AuthorAdmin
и набор имен полей, которые вы хотите отобразить в списке, в том порядке, в котором они вам нужны.
Вы всегда должны указывать эти поля в своей модели Django (models.py
файл). В противном случае они не будут отображаться.
В результате должен получиться интерфейс, подобный приведенному ниже:
Результат настройки представления списка.
Используя этот метод, вы можете настроить listview любой модели в соответствии с потребностями вашего проекта.
Как настроить подробный вид
По умолчанию Django размещает подробные представления по вертикали в том порядке, в котором они определены в модели. Но вы можете изменить это в соответствии со своими потребностями и решить, какие поля вы хотите отображать, а какие исключить.
Вы можете сделать это, добавив атрибут field
в свой класс admin. Например:
class AuthorAdmin(admin.ModelAdmin):
list_display = ('last_name', 'first_name', 'date_of_birth', 'date_of_death')
fields = ['first_name', 'last_name', ('date_of_birth', 'date_of_death')]
Атрибут field в приведенном выше фрагменте кода изменяет порядок расположения ваших полей. first_name
теперь стоит перед last_name
. По умолчанию поля отображаются вертикально, но, сгруппировав их в кортеж (в поле даты), они теперь отображаются горизонтально.
Атрибут field в приведенном выше фрагменте кода изменяет порядок расположения ваших полей.
теперь стоит перед . По умолчанию поля отображаются вертикально, но, сгруппировав их в кортеж (в поле даты), они теперь отображаются горизонтально.
Результат настройки подробного представления.
Кроме того, вы можете использовать атрибут exclude
, чтобы исключить/удалить поля из формы.
Заключение
Настройка сайта администратора Django важна для эффективного управления моделями в вашем проекте Django. Знание того, как использовать и настраивать интерфейс Django, повышает качество и удобство сопровождения вашего проекта.
В этой статье описывается, как настроить сайт администратора и как вы можете настроить его в соответствии с потребностями вашего проекта. Приятного написания кода!
Вернуться на верх