由於我的模型的自定義save方法將request.user作爲參數,因此我無法執行POST/PUT請求。Django-tastypie將request.user傳遞給自定義保存方法
TypeError at /api/obsadmin/observation/23
save() takes at least 2 arguments (1 given)
我正在使用SessionAuthentication()幷包含CSRF令牌。
下面是相關的模型部分:
def save(self, user, owner=None, *args, **kwargs):
self.updated_by = user.id
super(ObsModel, self).save(*args, **kwargs)
和資源:
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
我不再使用Tastypie(我們切換到DRF),但感謝您的回答。我相信這對某人會有所幫助。 – ObviousCat
非常感謝!這種機制有點令人困惑,文檔很少,我浪費了一個小時試圖找出答案。 – roboslone