Блок 1: __str__ и класс Meta
Вопрос 1 → B
Метод __str__ определяет строковое представление объекта модели. Без него объекты в Admin отображаются как "Book object (1)".
Вопрос 2 → A
Атрибут db_table задаёт имя таблицы в базе данных. По умолчанию Django генерирует имя как <appname>_<modelname>.
Вопрос 3 → Ответы: 1-B, 2-A, 3-E, 4-D, 5-C
- 1 (db_table) — B. Задает имя таблицы в БД
- 2 (ordering) — A. Определяет порядок сортировки
- 3 (verbose_name) — E. Человекочитаемое имя модели
- 4 (unique_together) — D. Задает комбинации уникальных полей
- 5 (get_latest_by) — C. Поле для определения последней записи
Вопрос 4 → сортировки
Атрибут ordering используется для определения порядка сортировки записей. Префикс - означает убывающий порядок.
Вопрос 5 → имени
Атрибут verbose_name_plural задает человекочитаемое множественное число имени модели. Используется в Admin-панели.
Вопрос 6 → A, B, C, D (все)
Все четыре атрибута (db_table, unique_together, verbose_name, constraints) допустимы в классе Meta.
Вопрос 7 → A, B, D
Метод __str__ помогает: A) отображению в Admin, B) читаемости логов, D) читаемости в console/print. Вариант C неверен — __str__ не влияет на генерацию миграций.
Блок 2: Административная панель
Вопрос 8 → A
Административная панель Django позволяет управлять данными через веб-интерфейс. Она автоматически генерирует CRUD-страницы для зарегистрированных моделей.
Вопрос 9 → B
Для настройки отображения нужно создать класс, наследуемый от admin.ModelAdmin.
Вопрос 10 → A
Атрибут list_display определяет поля (колонки), отображаемые в списке объектов модели в Admin.
Вопрос 11 → 1-B, 2-A, 3-F, 4-D, 5-C, 6-E
- 1 (list_display) — B. Поля в списке объектов
- 2 (search_fields) — A. Поля для поиска
- 3 (list_filter) — F. Боковые фильтры
- 4 (ordering) — D. Порядок сортировки
- 5 (fields) — C. Поля в форме редактирования
- 6 (list_per_page) — E. Количество объектов на странице
Вопрос 12 → admin.site.register
Два способа регистрации: функция admin.site.register(Book, BookAdmin) и декоратор @admin.register(Book). Оба корректны.
Вопрос 13 → A, B, C
list_display, search_fields, list_filter — атрибуты ModelAdmin. Вариант D неверен: verbose_name — атрибут класса Meta модели, не ModelAdmin.
Вопрос 14 → A, C
Существующие способы: A) admin.site.register() и C) @admin.register(). Варианты B (site.add_model) и D (site.include_model) не существуют.