使用 Django Rest Framework Serializers 时转换数据的推荐方法

Fre*_*red 5 django-rest-framework

使用 Django Rest Framework 序列化程序时,推荐的数据转换方式是什么?例如:

输入:

{
   "companyName" : "Acme , inc.",
   "id": 2,
   "parent": {
      "id": 1
   }
}
Run Code Online (Sandbox Code Playgroud)

期望的输出:

{
   "name" : "Acme , inc.",
   "id": 2,
   "parentId": 1
}
Run Code Online (Sandbox Code Playgroud)

小智 1

使用序列化器方法字段:

class Serializer(serializers.ModelSerializer):
    name = serializers.SerializerMethodField()
    parentId = serializers.SerializerMethodField()

    class Meta:
        model = 
        fields = ('name', 'parentId')

    def get_name(self, obj):
        #write logic

    def get_parentId(self, obj):
        #write logic
Run Code Online (Sandbox Code Playgroud)

  • 还有一个问题:我实际上想在反序列化时执行此操作,SerializerMethodField 在这种情况下适用吗?如果适用,如何实现? (2认同)
  • 如果我在创建对象时需要执行类似的操作,我从请求中获取一个数据,但需要将其转换为另一种数据以保存到模型中。 (2认同)