Встречается на собеседованиях • сегодня

Как мы получаем модель, если сериализатор (serializer) уже заполнен

Если сериализатор уже заполнен данными и прошёл валидацию, получить модель можно через метод save(). Он создаст или обновит экземпляр модели на основе данных сериализатора.

Пример с Django REST Framework:

python
serializer = MyModelSerializer(data=request.data)
if serializer.is_valid():
    instance = serializer.save()  # Возвращает модель
    print(instance.id)  # Доступ к полям модели

Нюансы:

  1. Для создания модели используется data=..., для обновления - instance=existing_model, data=...
  2. save() может принимать дополнительные аргументы, которые попадут в create()/update()
  3. Если сериализатор не валиден, save() вызовет исключение AssertionError
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы