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不一致。我认为问题陈述不清楚。是否要使用相同的序列化程序创建和检索对象?是这样吗?嗯,你的问题的确切答案甚至在我的专栏文章中突出了。