📝 Вопросы на самопроверку
⚡ Топ-5 вопросов для самопроверки
- Чем отличается
get_queryset()от атрибутаqueryset? - Когда использовать
ModelViewSet, а когда — набор Generic Views? - В чём разница между SimpleRouter и DefaultRouter?
- Как работает Soft Deletion и зачем нужен SoftDeleteManager?
- Когда применять PageNumberPagination, а когда CursorPagination?
Ответы: solutions.html
Блок A: GenericAPIView и Generic Views
Вопрос 1
Для чего используется класс GenericAPIView? Чем он отличается от APIView?
Вопрос 2
Что делают атрибуты queryset и serializer_class в GenericAPIView?
Вопрос 3
Какой метод в GenericAPIView следует переопределить, если нужно динамически формировать набор данных в зависимости от параметров запроса?
Вопрос 4
Перечислите все 9 классов Generic Views. Для чего используется каждый?
Вопрос 5
Для чего нужны атрибуты lookup_field и lookup_url_kwarg? Приведите пример использования.
Вопрос 6
Для чего используется метод get_object()? Какие задачи он решает?
Вопрос 7
Как передать дополнительные данные в сериализатор через контекст? Какой метод для этого используется?
Блок B: ViewSets и Router
Вопрос 8
Что такое ViewSets? В чём их главное преимущество перед Generic Views?
Вопрос 9
Перечислите три вида ViewSets. Когда каждый из них предпочтителен?
Вопрос 10
Какой метод необходимо переопределить в ModelViewSet, чтобы добавить кастомную логику перед сохранением нового объекта?
Вопрос 11
Как добавить кастомный метод в ViewSet? Какие параметры принимает декоратор @action? Как URL отличается при detail=True и detail=False?
Вопрос 12
Чем отличается DefaultRouter от SimpleRouter?
Блок C: Фильтрация, пагинация, логирование
Вопрос 13
Что делает атрибут filter_backends? Какие три стандартных backend входят в DRF и django-filter?
Вопрос 14
Какой параметр запроса используется для каждого из трёх filter backends? Приведите примеры URL.
Вопрос 15
Назовите три встроенных класса пагинации в DRF. Чем они отличаются друг от друга?
Вопрос 16
Как настроить пагинацию глобально для всего проекта? Где это делается?
Вопрос 17
Как подключить логирование SQL-запросов к базе данных в Django? Что нужно указать в settings.py?
Блок D: Soft Deletion, ленивая загрузка, транзакции
Вопрос 18
Что представляет из себя мягкое удаление (Soft Deletion)? Из каких шагов состоит его реализация?
Вопрос 19
Что такое менеджер модели? Зачем нужен SoftDeleteManager?
Вопрос 20
Что означает ленивая загрузка в Django ORM? Какие проблемы она вызывает? Как их решить?
Вопрос 21
Когда использовать select_related(), а когда — prefetch_related()?
Вопрос 22
Что такое транзакция? Назовите основные функции транзакционного API Django.
Вопрос 23
Как работает декоратор @transaction.atomic? Чем он отличается от with transaction.atomic()?
Ответы и разборы: → Решения