Что делают .to_representation()
и .to_internal_value
в serializers
?
Если я передаю данные в сериализатор, данные сначала бросаются to_representation()
?
Какое использование этих двух?
Использование .to_representation() и .to_internal_value в django-rest-framework?
Ответ 1
Если вы хотите создать настраиваемое поле, вам нужно создать подкласс а затем переопределить один или оба из
.to_representation()
и.to_internal_value()
методы. Эти два метода используются для преобразования между исходным типом данных и примитивным сериализуемым типом данных. Примитивные типы данных, как правило, будут любыми из числа, строки, логическое значение, дата/время/дата/время или нет. Они также могут быть любым списком или словарь, как объект, который содержит только другие примитивные объекты. Другие типы могут поддерживаться, в зависимости от того, какой вы используете используя.Метод
.to_representation()
вызывается для преобразования начального тип данных в примитивный, сериализуемый тип данных.Метод
to_internal_value()
вызывается для восстановления примитива. Тип данных во внутреннем представлении Python. Этот метод должен поднять serializers.ValidationError, если данные недействительны.Обратите внимание, что класс
WritableField
, который присутствовал в версии 2.x нет дольше существует. Вы должны создать подкласс Field и переопределитьto_internal_value()
, если поле поддерживает ввод данных.
Ref: