我有一个视图,允许使用ajax请求动态添加标签。它看起来像这样:为什么login_required装饰器返回302状态码?
@require_POST
@login_required
def addtag(request):
"""
a view to create a new tag in the tag database
"""
some logic here
这是我url.py是什么样子:
urlpatterns = patterns('',
url(r'^addtag/$',addtag, name='addtag'),
)
而我的测试是这样做的:
def test_addtag(self):
url='^addtag/$'
response = self.client.post(url,{'addtag':'"new tag"'})
self.assertEqual(response.status_code,401)
我希望返回的状态码是一个401,因为testclient没有登录。所以第一个装饰,检查请求是否是一个帖子正在愉快地通过。然后我预计login_required装饰返回一个401,但它没有:
AssertionError: 302 != 401
首先,我认为login_required装饰将被重定向到一些登录页面。检查了一下,我没有指定settings.LOGIN_REDIRECT_URL
。那么在这种情况下login_required做了什么?
您是否检查了响应位置标题? – jpic 2012-03-13 17:02:08
好主意!可以将我的头撞在墙上...位置是:'http:// testserver/accounts/login /?next =/addtag /' – marue 2012-03-13 17:10:42