Настройка способа отображения моделей
Теперь мы собираемся посмотреть, как настроить узел администрирования. Отредактируйте файл admin.py приложения blog:
from django.contrib import admin
from .models import Post
class PostAdmin(admin.ModelAdmin):
list_display = ('title', 'slug', 'author', 'publish', 'status')
admin.site.register(Post, PostAdmin)
Мы сообщаем узлу администратора Джанго, что наша модель зарегистрирована в админке, используя пользовательский класс, наследуемый от ModelAdmin. В этом классе можно включить сведения о том, как отобразить модель в админке и как взаимодействовать с ней. Атрибут list_display позволяет задать поля модели, которые будут отображаться на странице списка объектов.
Рассмотрим настройку модели администрирования с помощью следующего кода:
class PostAdmin(admin.ModelAdmin):
list_display = ('title', 'slug', 'author', 'publish', 'status')
list_filter = ('status', 'created', 'publish', 'author')
search_fields = ('title', 'body')
prepopulated_fields = {'slug': ('title',)}
raw_id_fields = ('author',)
date_hierarchy = 'publish'
ordering = ['status', 'publish']
Вернитесь в браузер и перезагрузите страницу списка постов. Теперь он будет выглядеть следующим образом:
Можно увидеть, что поля, отображаемые на странице списка POST, являются теми, которые указаны в атрибуте list_display. Теперь страница списка содержит правую боковую панель, которая позволяет фильтровать результаты по полям, включенным в атрибут list_filter.
На странице появилась панель поиска. Это объясняется тем, что мы определили список полей для поиска с помощью атрибута search_fields. Прямо под панелью поиска имеется панель для быстрого перехода по иерархии дат. Это определено атрибутом date_hierarchy. Кроме того, можно увидеть, что посты могут быть упорядочены по статусу.
Теперь щелкните ссылку Add post. При вводе названия нового поста поле «slug» заполняется автоматически - это результат работы поля prepopulated_fields. Кроме того, теперь в поле «author» отображается графический элемент «Уточняющий запрос», который может масштабироваться гораздо лучше, чем в раскрывающемся списке «Выбор входных данных» при наличии тысяч пользователей, как показано на следующем снимке экрана:
С помощью нескольких строк кода мы настроили отображения нашей модели на узле admin. Далее в этой книге мы будем освещать разные аспекты расширения и настройки административной части сайта.