那么深,我有这样的模式:ModelSerializer POST应该是平的,而GET应该有2
class Article(models.Model):
user = models.ForeignKey('User', null=True) # Allow anonymous articles
url = models.CharField(max_length=255)
date = models.DateTimeField()
status = models.CharField(max_length=255)
这串:
class ArticleSerializer(serializers.modelSerializer):
class Meta:
model = Article
fields = ('user', 'date', 'status')
depth = 2
有了这个视图集:
class ArticleViewSet(viewsets.ModelViewSet):
queryset = Article.objects.all(=
serializer_class = ArticleSerializer
所以我在一个请求中获取与用户相关的所有内容。 问题是,如果我想添加一篇文章,我现在必须添加一大堆嵌套的json。我宁愿仅通过id引用用户,并完成它。
像:
{
"user": 1, // Or even null
"url": "http://test.tld",
"date": now,
"status": "published"
}
任何想法我怎么能做到这一点?我想我需要另一个序列化器来写数据?如何将所有这些绑定在一起?
如果我想这样发布JSON,我会收到一个错误,指出“非字段错误”,因为“customer”有几个附加关系,并且由于“深度”,它们也需要填充。但我只想提供一个客户ID并完成它。
你有[nested serializers](http://www.django-rest-framework.org/api-guide/serializers/#specifying-nested-serialization )你不是在炫耀G? – 2015-02-06 00:09:40
@RossRogers:不,我在整个应用程序的其余部分使用HyperlinkedModelSerializers,但问题是,如果我想发布文章,我会得到“非字段错误”,因为我必须指定整个客户以及它的所有子 - 关系,这太深了^^ – Sorona 2015-02-06 11:24:55