По порядку Middle Django REST Framework обновлено
Порядок обработки запроса во вьюсете DRF
Вопрос
Расставьте шаги обработки PATCH /orders/5/ в ModelViewSet по порядку.
Попробуйте сами
Расставьте шаги по порядку стрелками.
- 1Троттлинг
- 2Валидация сериализатора с
partial=True - 3Проверка
has_permissionу permission-классов - 4
get_object(): поиск вget_queryset()иhas_object_permission - 5Аутентификация: определяется
request.user - 6
perform_updateсохраняет объект, ответ сериализуется
Показать ответ и разбор
Коротко
В APIView.initial() DRF выполняет аутентификацию, проверку прав и троттлинг. Затем действие вызывает getobject() с объектной проверкой, валидирует данные и сохраняет.
Правильный порядок
- 1Аутентификация: определяется
request.user - 2Проверка
has_permissionу permission-классов - 3Троттлинг
- 4
get_object(): поиск вget_queryset()иhas_object_permission - 5Валидация сериализатора с
partial=True - 6
perform_updateсохраняет объект, ответ сериализуется
Разбор
В APIView.initial() DRF выполняет аутентификацию, проверку прав и троттлинг. Затем действие вызывает get_object() с объектной проверкой, валидирует данные и сохраняет. Если объект не найден в отфильтрованном get_queryset, будет 404 ещё до валидации.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.