📝 Вопросы на самопроверку: Django-блок

🎯 Проверка знаний уроков 13–24 К оглавлению урока

⚡ Топ-5 вопросов

  1. Для чего нужен метод __str__ в модели Django?
  2. Что делает ordering = ['-published_date'] в классе Meta?
  3. Какие исключения бросает метод get()?
  4. В чём разница между TabularInline и StackedInline?
  5. Что нужно прописать в settings.py для кастомной модели User?

Блок А: Метод __str__ и класс Meta

A-1. Метод __str__

Для чего нужен метод __str__ в модели Django? Что изменится в admin-панели, если его не определить?

A-2. Класс Meta

Назовите не менее пяти атрибутов класса Meta модели Django и объясните, что каждый из них делает.

A-3. db_table

По какому правилу Django генерирует имя таблицы по умолчанию? Как его изменить?

A-4. index_together vs indexes

Почему в современном Django рекомендуется использовать indexes вместо index_together?

Блок Б: Административная панель

Б-1. Регистрация модели

Назовите два способа зарегистрировать модель в Django Admin. Какой предпочтительнее?

Б-2. ModelAdmin атрибуты

Что делают атрибуты list_display, search_fields, list_filter и list_per_page?

Б-3. Пользовательские действия

Напишите пользовательский action для модели Task, который переводит выбранные задачи в статус "Done".

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

В-1. TabularInline vs StackedInline

Чем отличается отображение TabularInline от StackedInline? Когда использовать каждый?

В-2. Параметр extra

Что означает параметр extra = 1 в классе инлайна?

В-3. Реализация инлайна

Напишите код для добавления TabularInline формы SubTask на страницу редактирования Task в admin.

Блок Г: Модель User

Г-1. Поля встроенного User

Какие поля входят в стандартную модель User из django.contrib.auth.models? Какие обязательны?

Г-2. Иерархия наследования

Из каких классов состоит иерархия модели User? Что предоставляет каждый класс?

Г-3. Кастомный User

Опишите 4 шага создания кастомной модели пользователя. Почему важно прописать AUTH_USER_MODEL до первой миграции?

Блок Д: ORM-запросы

Д-1. QuerySet

Что такое QuerySet? Почему они «ленивые» (lazy)?

Д-2. get() vs filter()

В чём ключевое отличие get() от filter()? Какие исключения может бросить get()?

Д-3. Lookups

Напишите запросы:

  • Книги, у которых название содержит "Great" (без учёта регистра)
  • Книги, опубликованные в диапазоне 2010–2023 годов
  • Книги без указанной цены

Д-4. Класс Q

Напишите запрос: найти книги, которые либо являются бестселлерами, либо опубликованы после 2000 года, но не написаны автором "George Orwell".

Д-5. Класс F

Для чего используется класс F? Напишите запрос, увеличивающий цену всех книг на 15%.

Д-6. Bulk-операции

Чем bulk_create отличается от обычного цикла с save()? В каких ситуациях bulk-операции предпочтительнее?

Ответы: solutions.html