Django REST framework 自定义字段
自定义字段
- 继承
Field
类 - 覆盖父类中的方法
-
to_representation()
调用该方法将初始数据类型转换为基本的可序列化数据类型 -
to_internal_value()
调用该方法将原始数据类型恢复为其内部python表示 -
如果字段支持数据输入,则应该进行子类化
Field
和覆盖to_internal_value()
。
-
eg:
class MyField(serializers.Field):
def to_internal_value(self, data):
print("to_internal_value", data)
return "Hello MyField"
def to_representation(self, value):
print("to_representation", value)
return 23333
class TestSerializer(serializers.Serializer):
test = MyField()
t = TestSerializer(data={"test": "test"})
t.is_valid() # to_internal_value test
t.data # to_representation Hello MyField ` {'test': 23333}`