我要做的是设置一个简单的自定义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。 documentation说Authorization()
是:
无操作授权选项,不执行权限检查。
然后为什么会失败?
我还尝试了一个自定义授权类,无论如何都会在True
方法中返回is_authorized
,但它仍会引发401 UNAUTHORIZED错误。任何线索?
答案 0 :(得分:2)
我一直面临同样的问题。看起来SessionAuthentication不适用于HTTP POST。
此处已解释更多