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