当尝试将数据发布到我的tastypie api时,即使使用Django管理员帐户进行身份验证和授权,我也总是会收到错误代码401。我的Django服务器通过“python manage.py runserver IP”
作为开发服务器运行我正在使用tastypie和Django 1.4.3的最新主分支
class QueueResource(ModelResource):
class Meta:
queryset = Queue.objects.all()
resource_name = 'queue'
]
curl --dump-header -H "Content-Type: application/json" -X POST --data '{"qid": "4", "msg": "An error occured!"}' http://IP/api/fail/
HTTP/1.0 401 UNAUTHORIZED
Date: Wed, 13 Feb 2013 19:16:00 GMT
Server: WSGIServer/0.1 Python/2.7.3
X-Frame-Options: SAMEORIGIN
Content-Type: text/html; charset=utf-8
有没有人知道我为什么会收到此错误代码?
答案 0 :(得分:2)
您应该定义将在资源的元类中使用的授权。
默认值为ReadOnlyAuthorization 您可以找到Here
的更多信息答案 1 :(得分:0)
与UnLiMiTeD所说的一样,您需要定义Authorization。
from tastypie.authorization import Authorization
class QueueResource(ModelResource):
class Meta:
authorization = Authorization()
queryset = Queue.objects.all()
resource_name = 'queue'
这将使QueueResource
没有授权限制。您可以在不验证任何凭据的情况下发布到它。
默认授权方法是ReadOnlyAuthorization
。