Ответ
Регистрация моделей для админ-панели Django происходит в файле admin.py
соответствующего приложения. Существует два основных способа: простая регистрация и регистрация с кастомизацией через класс ModelAdmin
.
Способ 1: Простая регистрация
Это самый быстрый способ, который добавляет модель в админку с настройками по умолчанию.
# myapp/admin.py
from django.contrib import admin
from .models import Article
# Регистрация модели Article
admin.site.register(Article)
Способ 2: Регистрация с кастомизацией (ModelAdmin
)
Для настройки отображения и поведения модели в админ-панели создается класс, наследуемый от admin.ModelAdmin
. Рекомендуется использовать декоратор @admin.register()
.
Этот подход позволяет:
- Настроить отображаемые в списке поля (
list_display
). - Добавить фильтры (
list_filter
). - Включить поиск (
search_fields
).
# myapp/admin.py
from django.contrib import admin
from .models import Article
@admin.register(Article)
class ArticleAdmin(admin.ModelAdmin):
"""
Класс для кастомизации представления модели Article в админ-панели.
"""
# Поля, которые будут отображаться в списке объектов
list_display = ('title', 'author', 'status', 'publish_date')
# Поля для фильтрации сбоку
list_filter = ('status', 'author')
# Поля, по которым будет работать поиск
search_fields = ('title', 'content')
# Автоматическое заполнение слага из заголовка
prepopulated_fields = {'slug': ('title',)}
Результат: После регистрации и запуска сервера модель станет доступна для управления в админ-панели (по умолчанию /admin
), но только для пользователей со статусом is_staff
.