即使使用授权类,tastypie也会返回401

时间:2013-03-11 09:40:14

标签: django tastypie

我要做的是设置一个简单的自定义Resource,如下所示:

MailResource(Resource):
    to = fields.CharField(attribute='To')
    subject = fields.CharField(attribute='Subject')
    message = fields.CharField(attribute='Message')

    class Meta:
        resource_name = 'mail'
        allowed_methods = ['post']
        authorization = Authorization()

        def detail_uri_kwargs(self, bundle_or_obj):
            kwargs = {}
            if isinstance(bundle_or_obj, Bundle):
                kwargs['pk'] = bundle_or_obj.obj.uuid
            else:
                kwargs['pk'] = bundle_or_obj.uuid
            return kwargs

        def obj_create(self, bundle, request=None, **kwargs):
            print bundle.obj
            print request
            print kwargs
            # Create the object
            return bundle

但是当我使用curl进行测试发布请求时,我总是得到401 UNAUTHORIZED错误。为什么这样 ?不是Authorization()类是为is_authorized方法返回true。 documentationAuthorization()是:

  

无操作授权选项,不执行权限检查。

然后为什么会失败?

更新

我还尝试了一个自定义授权类,无论如何都会在True方法中返回is_authorized,但它仍会引发401 UNAUTHORIZED错误。任何线索?

1 个答案:

答案 0 :(得分:2)

我一直面临同样的问题。看起来SessionAuthentication不适用于HTTP POST。

此处已解释更多

Does SessionAuthentication work in Tastypie for HTTP POST?