Django - 自定义仪表板视图认证问题
Django版本 1.1.1 我设置了一个自定义的仪表盘视图,用来替代Django管理后台的默认界面,代码如下:
(r'^admin/$', 'dashboard.views.dashboard'),
(r'^admin/', include(admin.site.urls)),
这个仪表盘视图使用了@staff_member_required装饰器来进行身份验证。
之前一切都运行得很好,所有用户都有超级用户权限,但当我尝试登录一个只有员工身份的用户时(我尝试了不同的权限设置),却出现了500服务器错误:
[Sun Jul 18 12:36:59 2010] [error] [client 127.0.0.1] mod_wsgi
(pid=13815): Exception occurred processing WSGI script '/home/......../
_site.wsgi'.
[Sun Jul 18 12:36:59 2010] [error] [client 127.0.0.1] Traceback (most
recent call last):
[Sun Jul 18 12:36:59 2010] [error] [client 127.0.0.1] File "/
home/...../lib/python2.5/django/core/handlers/wsgi.py", line 245, in
__call__
[Sun Jul 18 12:36:59 2010] [error] [client 127.0.0.1] response =
middleware_method(request, response)
[Sun Jul 18 12:36:59 2010] [error] [client 127.0.0.1] File "/
home/....../lib/python2.5/django/contrib/sessions/middleware.py", line
26, in process_response
[Sun Jul 18 12:36:59 2010] [error] [client 127.0.0.1]
patch_vary_headers(response, ('Cookie',))
[Sun Jul 18 12:36:59 2010] [error] [client 127.0.0.1] File "/
home/....../lib/python2.5/django/utils/cache.py", line 130, in
patch_vary_headers
[Sun Jul 18 12:36:59 2010] [error] [client 127.0.0.1] if
response.has_header('Vary'):
[Sun Jul 18 12:36:59 2010] [error] [client 127.0.0.1] AttributeError:
'QuerySet' object has no attribute 'has_header'
当用户使用@login_required登录时,我也遇到了同样的错误。对此有什么想法吗?
谢谢
1 个回答
0
也许你应该清理一下浏览器的 cookies,并且要正确地退出登录,既要在公共的退出登录链接上操作,也要在管理员的退出登录链接上操作。我觉得普通用户和工作人员是打开不同的会话,所以把这两者混在同一个应用里并不是个好主意。