← К оглавлению урока

✅ Решения: разбор заданий лекции

⚡ Все ответы

  1. b) — редактировать связанные модели на одной странице
  2. b) — admin.TabularInline
  3. b) — количество пустых форм для новых объектов
  4. c) — TabularInline и StackedInline
  5. Сопоставление: TabularInline→таблица, StackedInline→вертикаль, ModelAdmin→основной класс
  6. B) — механизм для массовых операций
  7. C) — INSTALLED_APPS не нужен
  8. Сопоставление: actions=список, update=массовое обновление, short_description=название, request/queryset=параметры

Блок 1: Инлайн-формы

Вопрос 1 — Ответ: b)

Они дают возможность редактировать связанные модели на одной странице с основной моделью.

Объяснение: Inline — это UI-компонент Django Admin. Он не меняет структуру БД и не создаёт новых моделей. Inline просто отображает связанные объекты (через ForeignKey) прямо на форме родительского объекта, что избавляет от необходимости переходить между разделами Admin.

Вопрос 2 — Ответ: b) admin.TabularInline

Объяснение: TabularInline — «tabular» означает «табличный». Каждый связанный объект — строка таблицы, поля — столбцы. Компактно и удобно для обзора.

StackedInline — каждый объект в отдельном «стеке» (блоке), поля идут сверху вниз.

class BookInline(admin.TabularInline):  # табличный
    model = Book

Вопрос 3 — Ответ: b) Количество пустых форм для ввода новых объектов

Объяснение: extra = 1 означает, что Django покажет 1 пустую строку/форму для ввода нового объекта. Уже существующие объекты отображаются независимо от extra.

class BookInline(admin.TabularInline):
    model = Book
    extra = 3  # показать 3 пустые строки для новых книг

Вопрос 4 — Ответ: c) TabularInline и StackedInline

Объяснение: Именно эти два класса предоставляет Django Admin из коробки. HorizontalInline и VerticalInline — не существуют в Django. InlineFormSet — это базовый класс формсетов, не Admin-класс.

Вопрос 5 — Сопоставление

КлассОписание
admin.TabularInline Отображает связанные объекты в табличном формате (строки)
admin.StackedInline Отображает связанные объекты в вертикальном формате (блоки)
admin.ModelAdmin Основной класс для настройки отображения модели в Admin

Блок 2: Admin Actions

Вопрос 6 — Ответ: B)

Механизм, позволяющий выполнять массовые операции над выбранными объектами из списка в админ-панели.

Объяснение: Actions работают именно с несколькими выбранными объектами через их QuerySet. По умолчанию в Admin есть только одно действие — «Удалить выбранные объекты». Кастомные actions позволяют добавить свои операции.

Вопрос 7 — Ответ: C)

Указать в настройке проекта INSTALLED_APPS название функции-действия — это НЕ нужно.

Объяснение: INSTALLED_APPS используется для регистрации Django-приложений, а не отдельных функций. Action регистрируется только через атрибут actions в ModelAdmin. short_description — необязателен, но рекомендуется для читаемого названия.

Вопрос 8 — Сопоставление

ПонятиеОписание
actions = [my_action] Список внутри ModelAdmin, где указываются все доступные действия
queryset.update(...) Метод для применения изменений сразу к группе записей (один SQL UPDATE)
short_description Атрибут функции — человекочитаемое название в выпадающем списке Admin
request, queryset Параметры функции-действия: запрос и набор выбранных объектов