我正在使用Django REST框架爲我的web應用程序創建一個API。我有一堂課'評論',其中depth=2
設置在Meta
班。這在GET
ing Comments
時很好用。當我嘗試發送POST
或PUT
請求時(即創建新的Comment
),我被告知需要包含對象而不是ForeignKey ID。Django REST框架POST/PUT的不同深度?
這裏是我的序列化器類:
class CommentSerializer(serializers.ModelSerializer):
class Meta:
model = Comment
depth = 2
型號:
class Comment(models.Model):
user = models.ForeignKey(User, null=True, blank=True,
related_name='comments')
budget = models.ForeignKey(Budget, related_name='comments')
published = models.BooleanField(default=False)
body = models.TextField()
created = models.DateTimeField(auto_now_add=True)
視圖代碼:
class Comments(generics.ListCreateAPIView):
model = Comment
serializer_class = CommentSerializer
def pre_save(self, obj):
obj.user = self.request.user
,這是顯示在輸出誤差(JSON)是:
{"user": ["This field is required."], "budget": [{"non_field_errors": ["Invalid data"]}]}
當這些原始數據被髮送出去。
{"budget": 2, "published": true, "body": "Another comment"}
隨機問題,如果你發送'{「budget_id」:2}'或'{「budget」:{「id」:2}}? – 2013-04-08 19:20:20
RE @Nathan Villaescusa。那麼它期望按照需要顯示其他預算字段。 – panchicore 2013-08-25 21:24:45