Урок 24. Инлайн-формы в Admin-панели (Django)

📁 Блок: Django ⏱️ Время изучения: ~60 мин 🎯 Сложность: Средняя
#django #admin #TabularInline #StackedInline #actions #ModelAdmin

⚡ Кратко: Инлайн-формы и Admin Actions в Django

Инлайн-формы позволяют редактировать связанные модели прямо на странице основной модели в Admin. Admin Actions — массовые операции над выбранными объектами.

  • TabularInline — связанные объекты в компактном табличном виде
  • StackedInline — каждый объект отдельным блоком, удобно при многих полях
  • extra = 1 — количество пустых форм для новых объектов
  • inlines = [BookInline] — подключить inline к ModelAdmin
  • actions = [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

🎯 Что изучать дальше