Ответ
Регистрация моделей для админ-панели 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.