【发布时间】:2016-02-16 17:57:21
【问题描述】:
首先,这不是关于创建或更新嵌套对象,而只是关于设置它们。让我们使用以下示例:我有以下模型:
class Category(models.Model):
code= models.CharField(max_length=2)
name= models.CharField(max_length=100)
class Question(models.Model):
category= models.ForeignKey(Category, related_name='categories')
title = models.CharField(max_length=100)
以及以下序列化程序:
class CategorySerializer(serializers.ModelSerializer):
class Meta:
model = Category
fields = ('code', 'name')
class QuestionSerializer(serializers.ModelSerializer):
category= CategorySerializer()
class Meta:
model = Question
fields = ('category', 'title')
现在,当我 get 和 Question 时,它按预期正常工作:我按预期得到带有类别字段的问题字段。
我遇到的问题是,当我想 post 和 Question 只有 Category.code 时,我不确定如何设置/使用现有的 Category。我一直在尝试不同的方法,但都没有奏效。
如果我删除QuestionSerializer 上的category= CategorySerializer() 并在我的请求中传递Category 的id (pk),那么它正在工作,Question 与相关的@ 一起保存987654336@.
有没有办法说明如何序列化嵌套对象?
提前感谢您的任何评论/建议/解决方案。
【问题讨论】:
标签: django serialization django-rest-framework