Как зарегистрировать модель в админ-панели Django

Ответ

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