Django rest framework 使用UUID创建具有嵌套序列化程序的对象
我有这样一个序列化程序:Django rest framework 使用UUID创建具有嵌套序列化程序的对象,django-rest-framework,Django Rest Framework,我有这样一个序列化程序: class SureveyResponseSerializer(serializers.ModelSerializer): respondent_profile = RespondentsProfileSerializer(read_only=True) def create(self, validated_data): ... some stuff ... return survey_response
class SureveyResponseSerializer(serializers.ModelSerializer):
respondent_profile = RespondentsProfileSerializer(read_only=True)
def create(self, validated_data):
... some stuff ...
return survey_response
class Meta:
model = SurveyResponse
fields = '__all__'
我这里的问题是如何使用同一个序列化程序创建和读取对象。为了阅读,我想显示appender\u profile
的嵌套实例及其所有字段
对于SurveyResponse
(以及添加与现有受访者_档案的关系),我只想传递现有受访者_档案的UUID
这是可能的还是我需要两个不同的序列化程序?我建议使用get\u-appender\u profile(self,obj)方法序列化响应中的额外字段。嗯,serializerMethodFields是设计只读的,因此在编写时的行为相同。序列化程序不会默认依赖pk进行写入。更改字段名称将导致添加“额外字段”将导致API不一致。我认为问题陈述不清楚。是否要使用相同的序列化程序创建和检索对象?是这样吗?嗯,你的问题的确切答案甚至在我的专栏文章中被强调了。我建议使用get_-Appender_profile(self,obj)方法序列化额外字段作为响应。嗯,serializerMethodFields是通过设计来读取的,所以在写作时的行为是相同的。序列化程序不会默认依赖pk进行写入。更改字段名称将导致添加“额外字段”将导致API不一致。我认为问题陈述不清楚。是否要使用相同的序列化程序创建和检索对象?是这样吗?嗯,你的问题的确切答案甚至在我的专栏文章中突出了。