Как настроить сайт администратора 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) в вашем браузере. Вы увидите страницу, которая выглядит следующим образом:

Image Страница входа в систему администратора Django.

Введите данные своей учетной записи суперпользователя, нажмите "Войти", и вы увидите новую страницу, которая выглядит следующим образом:

Image Домашняя страница администратора Django.

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

После добавления записи в модель нажмите на кнопку SAVE, Save and add another, или Save and continue editing, чтобы сохранить запись. Ваш экран должен выглядеть так, как показано ниже:

Image 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 файл). В противном случае они не будут отображаться.

В результате должен получиться интерфейс, подобный приведенному ниже:

Image Результат настройки представления списка.

Используя этот метод, вы можете настроить 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 в приведенном выше фрагменте кода изменяет порядок расположения ваших полей.

теперь стоит перед . По умолчанию поля отображаются вертикально, но, сгруппировав их в кортеж (в поле даты), они теперь отображаются горизонтально.

Image Результат настройки подробного представления.

Кроме того, вы можете использовать атрибут exclude, чтобы исключить/удалить поля из формы.

Заключение

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

В этой статье описывается, как настроить сайт администратора и как вы можете настроить его в соответствии с потребностями вашего проекта. Приятного написания кода!

Вернуться на верх