【发布时间】:2015-04-05 23:48:12
【问题描述】:
所以,我有这个模型:
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,我会收到一条错误消息“非字段错误”,因为“客户”附加了一些关系,并且由于“深度”,它们也需要填充。但我只想提供一个客户 ID 并完成它。
【问题讨论】:
-
您是否有没有显示的nested serializers?
-
@RossRogers:不,我在整个应用程序的其余部分都使用 HyperlinkedModelSerializers,但问题是如果我想发布一篇文章,我会得到“非字段错误”,因为我必须指定整个客户及其所有子关系,这太深了^^
标签: python django model django-rest-framework