Является ли request.data изменяемым по умолчанию в Django REST Framework 3.13.1?
Я использую функцию представления DRF (с декоратором @api_view(["POST"])) для использования данных, размещенных пользователем, для создания новой записи в базе данных для модели Product. В определении модели у меня есть Meta unique_together = ["user", "name"]. Я хотел бы убедиться, что это ограничение уникальности вместе проверяется в валидации сериализатора, чтобы избежать возникновения ошибки целостности во время сохранения.
Так что раньше я пробовал request.data["user"] = request.user.id, перед передачей request.data в сериализатор модели, затем вызывал serializer.is_valid() и, наконец, serializer.save(). Однако, это вызывало ошибку о том, что request.data не может быть изменено, когда я использовал DRF 3.12.x (и Django 3.2). Это было небольшое неудобство, поскольку мне приходилось создавать копию request.data для изменения размещенных данных. Подобные вещи описаны во многих местах, например, здесь на SO и в других местах.
Но с тех пор я обновился до DRF 3.13.1 и заметил, что теперь я могу изменять request.data так, как не мог раньше (как добавлять новую пару ключ-значение, так и редактировать значение для существующего ключа). Я тестирую с помощью Postman: тип request.data отображался как QueryDict, когда я отправлял данные формы, и dict, когда я отправлял json. В любом случае я могу изменить его.
Можно ли что-то изменить в DRF сейчас? Я что-то упустил в документации? Или, возможно, я непреднамеренно изменил что-то еще в своем коде, что теперь позволяет это сделать?