我尝试使用可写嵌套序列化程序在Django Rest框架中执行create。在
使用下面的代码,我可以创建一个ScriptQuestion,但不能在其中添加RecordedInterview。Django说OrderedDict不是。在
我做错什么了?在
提前谢谢
#models.py
class ScriptQuestion(models.Model):
interview = models.ManyToManyField(RecordedInterview)
...
class RecordedInterview(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
...
序列化程序
^{pr2}$这是我的观点
#views.py
class CreateQuestion(generics.CreateAPIView):
queryset = ScriptQuestion.objects.all()
serializer_class = QuestionDetailSerializer
还有json
{
"title": "Question Test Json",
"prep_time": "1",
"answer_time":"1",
"interview": [
{
"id": "a450aeb0-8446-47b0-95bd-5accbb8b4afa"
}
]
}
如果手动执行,则可以将RecordedInterface添加到ScriptQuestion中:
#serializers.py
def create(self, validated_data):
interview_data = validated_data.pop('interview')
question = ScriptQuestion.objects.create(**validated_data)
item = 'a450aeb0-8446-47b0-95bd-5accbb8b4afa'
question.interview.add(item)
return question
因为名声不好,我不能加评论。所以加起来作为答案。我觉得你应该用序列化程序。ModelSerializer'而不是'序列化程序.HyperLinkedModelSerializer'
哦,我能来的。在
对于将来的人,只需添加“id=序列化程序.CharField序列化程序中的“()”
相关问题 更多 >
编程相关推荐