因为我的模型的自定义保存方法请求.用户作为一个论点,我不能做POST/PUT请求。在
TypeError at /api/obsadmin/observation/23
save() takes at least 2 arguments (1 given)
我正在使用SessionAuthentication()并包含了CSRF令牌。在
以下是相关模型部分:
^{pr2}$以及资源:
class ObservationResource2(ModelResource):
comments = fields.ToManyField(CommentResource2, 'comments', full=True, null=True)
class Meta:
queryset = Observation.objects.filter(is_verified=True)
authentication = SessionAuthentication()
authorization = DjangoAuthorization()
resource_name = 'observation'
always_return_data = True
您可以重写
ModelResource
子类上的默认save()
方法。查看default implementation可以看出,save()
是用一个bundle对象调用的,该对象既有请求,也有要保存的对象。在不幸的是,在不复制大部分代码的情况下,没有一种简单的方法可以更改这一点,因为更改Django模型的
save()
签名相当少见。您也许可以这样做,但我建议您仔细测试:参考文献:
我刚刚通过使用内置的
hydrate
方法在保存数据之前修改数据,实现了同样的最终目标。当前请求在hydrate
方法内的bundle.request
中可用。参见文档here。在我有一个通过
FriendResource
公开的Friend
模型,我想通过user
ForeignKey字段链接到创建Django用户。在我的示例资源代码:
希望有帮助!在
相关问题 更多 >
编程相关推荐