✅ Решения: разбор заданий лекции
⚡ Все ответы
- b) — редактировать связанные модели на одной странице
- b) — admin.TabularInline
- b) — количество пустых форм для новых объектов
- c) — TabularInline и StackedInline
- Сопоставление: TabularInline→таблица, StackedInline→вертикаль, ModelAdmin→основной класс
- B) — механизм для массовых операций
- C) — INSTALLED_APPS не нужен
- Сопоставление: 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 |
Параметры функции-действия: запрос и набор выбранных объектов |