Каково назначение файла admin.py в Django?

Ответ

Файл admin.py в каждом приложении Django предназначен для регистрации моделей и настройки их представления во встроенном административном интерфейсе Django.

По сути, он служит мостом между вашими моделями (models.py) и мощной CRUD-системой, которую Django предоставляет «из коробки».

Основной принцип работы:

  1. Регистрация модели: Чтобы модель появилась в админ-панели, её необходимо зарегистрировать с помощью admin.site.register().
  2. Кастомизация: Для тонкой настройки отображения и поведения модели создаётся класс, унаследованный от admin.ModelAdmin, который затем связывается с моделью.

Пример:

# myapp/admin.py
from django.contrib import admin
from .models import Article, Author

# Простая регистрация модели Author
admin.site.register(Author)

# Расширенная настройка для модели Article
@admin.register(Article)
class ArticleAdmin(admin.ModelAdmin):
    """Класс для кастомизации представления модели Article в админке."""

    # Поля, которые будут отображаться в списке объектов
    list_display = ('title', 'author', 'published_date', 'was_published_recently')

    # Добавление панели фильтрации по дате публикации
    list_filter = ('published_date',)

    # Добавление поля для поиска по заголовку и содержимому
    search_fields = ('title', 'content')

    # Автоматическое заполнение поля slug на основе title
    prepopulated_fields = {'slug': ('title',)}

Без admin.py ваши модели не будут видны и доступны для управления в административном интерфейсе Django.