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}`
posted @ 2018-10-15 14:42  两只老虎111  阅读(227)  评论(0编辑  收藏  举报