【发布时间】:2015-03-16 02:10:19
【问题描述】:
我希望我的 rest api 能够添加对象,但有一个转折。
我的模型有一个名为 user 的字段,对于匿名用户可以是 None,也可以是设置它的人的 id。
如何以优雅的方式执行此操作?
另外,如果user 字段为无,我希望将新对象的 id 存储在匿名用户会话中的数组中,以便在他决定注册时对其进行分配。
这是我创建视图集的方式:
class PointAPIView(viewsets.ModelViewSet):
queryset = Point.objects.all()
serializer_class = PointSerializer
permission_classes = (IsOwnerOrReadOnly,)
我怀疑我必须编写自定义创建方法,对吗?如果是这样,它需要看起来像什么?文档只说它在那里,但没有说它需要如何构建以及它需要返回什么。你能告诉我一个我可以放置逻辑的虚拟方法的例子吗?
感谢您的宝贵时间!
编辑:因为有人问。模型看起来像这样:
class Point(models.Model):
user = models.ForeignKey('auth.User')
value = models.IntegerField()
现在的问题是如何在通过 rest api 创建点对象时强制 user 字段为 request.user。
【问题讨论】:
-
您可以在问题中包含您的模型吗?现在,如果没有更多的背景资料,很难回答。
-
对不起,如果问题不是 100% 清楚。我添加了一个简短的模型示例。现在有了带有用户字段的模型。当通过其余 api 完成创建时,我希望此字段为 request.user。
标签: django django-rest-framework django-1.7