Урок 24. Инлайн-формы в Admin-панели (Django)
⚡ Кратко: Инлайн-формы и Admin Actions в Django
Инлайн-формы позволяют редактировать связанные модели прямо на странице основной модели в Admin. Admin Actions — массовые операции над выбранными объектами.
- TabularInline — связанные объекты в компактном табличном виде
- StackedInline — каждый объект отдельным блоком, удобно при многих полях
extra = 1— количество пустых форм для новых объектовinlines = [BookInline]— подключить inline к ModelAdminactions = [my_action]— зарегистрировать кастомное действие
Частая ошибка: задать model в Inline-классе без внешнего ключа на родительскую модель — Django выбросит исключение.
📖 О чём этот урок
Этот урок посвящён двум мощным возможностям Django Admin: инлайн-формам (Inline) и пользовательским действиям (Admin Actions). Материал основан на лекции «Использование инлайн-форм в Админ-панели» (Python Advanced, урок 20 по нумерации LMS).
Инлайн-формы незаменимы, когда нужно редактировать связанные объекты (отношение один-ко-многим) на одной странице, не переходя между разделами Admin. Admin Actions позволяют выполнять массовые операции над отмеченными записями за один клик.
Что изучим
- TabularInline — табличный формат отображения связанных объектов
- StackedInline — вертикальный формат, один объект — один блок
- Настройки Inline:
extra,max_num,fields,readonly_fields - Подключение Inline к
ModelAdminчерез атрибутinlines - Создание кастомного Admin Action с
short_description - Массовые операции:
queryset.update(),bulk_create(),bulk_update()
📚 Что повторить перед изучением
- ← Урок 23: Доп. практикум 4 — ORM-запросы, DRF
- Регистрация моделей в Admin:
admin.site.register()и@admin.register()— Урок 19 - Настройка ModelAdmin:
list_display,search_fields,list_filter— Урок 19 - ForeignKey и отношения один-ко-многим в Django моделях — Урок 16
🎯 Что изучать дальше
- → Урок 25: Summary session 5 — итоговое повторение блока Django
- Django REST Framework: сериализаторы и ViewSet — Урок 26
- Кастомные виджеты и формы в Admin — официальная документация Django