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}`