Ответ
Файл admin.py в каждом приложении Django предназначен для регистрации моделей и настройки их представления во встроенном административном интерфейсе Django.
По сути, он служит мостом между вашими моделями (models.py) и мощной CRUD-системой, которую Django предоставляет «из коробки».
Основной принцип работы:
- Регистрация модели: Чтобы модель появилась в админ-панели, её необходимо зарегистрировать с помощью
admin.site.register(). - Кастомизация: Для тонкой настройки отображения и поведения модели создаётся класс, унаследованный от
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.