Предыдущая часть.
Что на самом деле делает панель управления, когда вы пользуетесь её веб-интерфейсом?
Всё очень просто.
Когда Django загружает URLconf
из urls.py
после старта сервера – взывается функция admin.autodiscover()
, которую мы добавили ранее в urls.py
, когда активировали панель управдения. Она проверяет элементы параметра INSTALLED_APPS
, и в каждом установленном приложении ищет файл admin.py
. Если такой файл наден – admin.autodiscover()
выполняет его.
В модуле admin.py
приложения books
каждый вызов admin.site.register()
регистрирует указанную модель в админпанели, и она будет отображать только те модели, которые были зарегистрированы явно.
Приложение django.contrib.auth
включает в себя свой отдельный модуль admin.py
, и именно поэтому в панели управления отображаются Users и Groups. Другие приложения django.contrib
, такие как django.contrib.redirects
, так же добавляют себя сами в панель управления, как и многие другие приложения Django, которые вы можете скачать в Интернете.
Кроме того, панель управления Django – это просто приложение Djnago, со своими моделями, шаблонами, представлениями и URLpattern
-ми. Вы встраиваете его в ваше приложение простым добавлением в URLconf
, точно так же, как вы делаете это для ваших собственных представлений. Вы можете изучить шаблоны и представления панели в каталоге django/contrib/admin
вашей установки Django (например – /usr/lib/python2.6/site-packages/django/contrib/
) – но избегайте что-либо редактировать прямо в них: имеется очень много расширений, которые позволяют настроить вашу панель управления без этого. Имейте ввиду, что приложение панели управления Django так же выполняет много сложных вещей, такие как чтение метаданных о моделях, так что – это действительно может быть хорошей идее – посмотреть его код, что бы лучше понять как что работает.
Продолжение – Django Book: изменение полей на необязательные.