Выбор ответа Middle Django REST Framework обновлено
Порядок валидации сериализатора
Вопрос
Где правильно проверить, что end_date позже start_date?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: В методе validate(self, attrs), где доступны все поля сразу. validate<field получает только значение своего поля.
Варианты ответа
- В методе
validate(self, attrs), где доступны все поля сразуправильный ответ - В
validate_end_date, там доступенstart_dateчерезself.start_date - Во вьюхе после
serializer.save() - В
to_representation
Разбор
validate_<field> получает только значение своего поля. Проверки между полями пишут в validate(attrs), который вызывается после проверки отдельных полей. После save() проверять поздно, данные уже в базе, а to_representation отвечает за вывод, а не за вход.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.