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 @ 2020-03-16 21:38  侃豺小哥  阅读(366)  评论(0编辑  收藏  举报