Настройка способа отображения моделей

Теперь мы собираемся посмотреть, как настроить узел администрирования. Отредактируйте файл 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. Далее в этой книге мы будем освещать разные аспекты расширения и настройки административной части сайта.

results matching ""

    No results matching ""