Django Book: как работает панель управления

Автор: | 03/18/2015
 

django_logo_2Предыдущая часть.

Что на самом деле делает панель управления, когда вы пользуетесь её веб-интерфейсом?

Всё очень просто.

Когда 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: изменение полей на необязательные.