Инструмент администрирования Django
Django предоставляет веб-инструмент администрирования.
Автоматический инструмент администрирования Django входит в состав django.contrib. Вы можете увидеть его в INSTALLED_APPS в settings.py вашего проекта:
/HelloWorld/HelloWorld/settings.py код файла:
django.contrib — это обширный набор функциональных возможностей и неотъемлемая часть базового кода Django.
Активировать инструменты управления
Обычно это автоматически настраивается в urls.py при создании проекта; нам просто нужно удалить комментарии.
Элементы конфигурации следующие:
/HelloWorld/HelloWorld/urls.py код файла:
После того как всё это настроено, инструмент управления Django Admin готов к запуску.
Используйте инструменты управления
Запустите сервер разработки, затем откройте http://127.0.0.1:8000/admin/ в браузере, и вы увидите следующий интерфейс:
Вы можете использовать командуpython manage.py createsuperuserчтобы создать суперпользователя, как показано ниже:
# python manage.py createsuperuser Username (leave blank to use 'root'): admin Email address: [email protected] Password: Password (again): Superuser created successfully. [root@solar HelloWorld]#
Затем введите имя пользователя и пароль для входа. Интерфейс показан ниже:
Чтобы интерфейс администратора мог управлять моделью данных, нам нужно сначала зарегистрировать модель данных в admin. Например, ранее мы создали модель Test в TestModel. Измените TestModel/admin.py:
HelloWorld/TestModel/admin.py: код файла:
После обновления вы увидите таблицу данных Testmodel:
Сложная модель
Панель администратора мощна и полностью способна работать с более сложными моделями данных.
Сначала добавьте более сложную модель данных в TestModel/models.py:
HelloWorld/TestModel/models.py: Код файла:
Здесь есть две таблицы. Tag использует Contact как внешний ключ. Одному Contact может соответствовать несколько Tags.
Мы также можем видеть много типов атрибутов, которые мы не встречали раньше, например IntegerField для хранения целых чисел.
Зарегистрируйте несколько моделей в TestModel/admin.py и отобразите их:
HelloWorld/TestModel/admin.py: код файла:
Обновите страницу управления, и результаты отобразятся следующим образом:
С помощью вышеуказанного инструмента admin мы можем выполнять сложные операции с моделями.
Если вы ещё не создали структуру таблицы, вы можете использовать следующую команду для её создания:
$ python manage.py makemigrations TestModel # 让 Django 知道我们在我们的模型有一些变更 $ python manage.py migrate TestModel # 创建表结构
Пользовательская форма
Мы можем настроить страницу администратора, чтобы заменить страницу по умолчанию. Например, на странице "add" выше мы хотим отображать только разделы name и email. Измените TestModel/admin.py:
HelloWorld/TestModel/admin.py: код файла:
Приведённый выше код определяет класс ContactAdmin, задающий формат отображения страницы администратора.
Атрибут fields внутри определяет поля, которые должны отображаться.
Поскольку этот класс соответствует модели данных Contact, нам нужно зарегистрировать их вместе. Эффект отображения следующий:
Мы также можем разделить поля ввода на разделы, и каждый раздел может определять собственный формат. Измените TestModel/admin.py на:
HelloWorld/TestModel/admin.py: код файла:
Приведенные выше поля разделены на два раздела: Main и Advance. Атрибут classes задает CSS-формат раздела, к которому он принадлежит. Здесь раздел Advance скрыт:
Рядом с разделом Advance есть кнопка Показать для его развертывания. После развертывания можно нажать Скрыть, чтобы скрыть его, как показано на рисунке ниже:
Встроенное отображение
В приведенном выше примере Contact — это внешний ключ для Tag, поэтому существует связь внешнего ключа.
Однако при отображении страницы по умолчанию они разделены, что не отражает их подчиненную связь. Мы можем использовать встроенное отображение, чтобы Tag отображался на странице редактирования Contact.
Измените TestModel/admin.py:
HelloWorld/TestModel/admin.py: код файла:
Отображаемый эффект выглядит следующим образом:
Отображение страницы списка
После ввода нескольких записей в Contact страница списка Contact выглядит следующим образом:
Мы также можем настроить отображение этой страницы. Например, чтобы отобразить больше столбцов в списке, просто добавьте атрибут list_display в ContactAdmin:
HelloWorld/TestModel/admin.py: код файла:
Обновите страницу, результат отображения будет следующим:
Функция поиска очень полезна при управлении большим количеством записей. Мы можем использовать search_fields, чтобы добавить панель поиска на эту страницу списка:
HelloWorld/TestModel/admin.py: код файла:
В этом примере мы искали записи с name example, и результаты показаны ниже:
Инструмент управления Django Admin также имеет много практических функций. Заинтересованные студенты могут изучить его глубже.
Другие расширения