Tastypie中的问题

时间:2013-02-22 05:53:10

标签: tastypie

当尝试将数据发布到我的tastypie api时,即使使用Django管理员帐户进行身份验证和授权,我也总是会收到错误代码401。我的Django服务器通过“python manage.py runserver IP”

作为开发服务器运行

我正在使用tastypie和Django 1.4.3的最新主分支

这是我的api.py

的一部分
class QueueResource(ModelResource):
    class Meta:
        queryset = Queue.objects.all()
        resource_name = 'queue'
        ]

我的curl命令:

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

有没有人知道我为什么会收到此错误代码?

2 个答案:

答案 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