✅ Решения заданий

⚡ Быстрые ответы

  • В1: B — строковое представление объекта
  • В2: A — имя таблицы в БД
  • В3: 1-B, 2-A, 3-E, 4-D, 5-C
  • В4: сортировки
  • В5: имени
  • В6: A, B, C, D — все четыре
  • В7: A, B, D (не C — миграции не генерирует)
  • В8: A — управлять данными через веб-интерфейс
  • В9: B — admin.ModelAdmin
  • В10: A — поля в списке объектов
  • В11: 1-B, 2-A, 3-F, 4-D, 5-C, 6-E
  • В12: admin.site.register
  • В13: A, B, C (не D — verbose_name это атрибут Meta)
  • В14: A, C (register и @admin.register)

Блок 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) не существуют.