Divide序列化程序Django rest框架

Divide序列化程序Django rest框架,django,serialization,django-rest-framework,Django,Serialization,Django Rest Framework,我有一个序列化程序接收: { "suggestions": [ { "description": "Portugal - Porto", "integration_data": { ....... } }, { "description": "Portugal - Porto", "another_data":{ .......

我有一个序列化程序接收:

{
    "suggestions": [
      {
       "description": "Portugal - Porto",       
       "integration_data": {
        .......
         }
      },
     {
      "description": "Portugal - Porto",
      "another_data":{
       .......
      }
     }]
}
如何使序列化程序执行以下操作: 如果
integration\u data
不为Null,则转到函数X,在那里我将处理序列化程序的所有逻辑 如果
另一个\u数据
不为Null,则转到函数Y,在那里我将处理序列化程序的所有逻辑

目前,我的序列化程序编写为:

class SuggestionSerializer(serializers.HyperlinkedModelSerializer):
    integration_data = serializers.DictField(write_only=True, allow_null=True, required=False)
    sponsor_data = serializers.DictField(write_only=True, allow_null=True, required=False)

谢谢

听起来你想用一个新的。差不多

class SuggestionSerializer(serializers.HyperlinkedModelSerializer):
    integration_data = = serializers.SerializerMethodField()
    ...
    def get_integration_data(self, obj):
        # Insert logic for generating value of this field here
        ...
        return value

这允许您根据逻辑而不是数据任意生成字段的值。

听起来您想使用一个。差不多

class SuggestionSerializer(serializers.HyperlinkedModelSerializer):
    integration_data = = serializers.SerializerMethodField()
    ...
    def get_integration_data(self, obj):
        # Insert logic for generating value of this field here
        ...
        return value

这允许您根据逻辑而不是数据任意生成字段的值。

SerializerMethodFields是只读的,我相信作者似乎希望使用可写字段。是的,它们是只读的--您认为问题的作者是否希望在保存数据之前用函数处理数据。。。?不完全确定问题是什么。我想是的,但我不认为它们与模型字段不对应。可能只是一个自定义创建…嗨,我决定创建两个不同的SerializerSerializerMethodField是只读的,我相信作者似乎希望使用可写字段。是的,它们是只读的--您认为问题的作者是否希望在保存数据之前使用函数处理数据。。。?不完全确定问题是什么。我想是的,但我不认为它们与模型字段不对应。也许只是一个自定义创建…嗨,我决定创建两个不同的序列化程序