我需要在我的一个Django应用程序(我不使用Django内置的验证系统)的每个视图中检查用户授权,并将用户重定向到“登录请求”页面,如果授权失败.
代码如下所示:
try: admin_from_session = request.session['admin']; admin = Administrator.objects.get(login = admin_from_session.login,password = admin_from_session.password,enabled=True); except KeyError,Administrator.DoesNotExist: return HttpResponseRedirect('/controlpanel/login')
问题是:如何在每个视图开始时运行这个代码,而不是每次重复一次?
如果我在PHP上编写我的程序,我会将这个代码放在单独的文件中,并在每个需要授权的页面开始写这样的代码:
include("redirect_if_not_logged_in.inc.PHP");
我找到的解决方案是:
包含标签 – 不做,
因为我不能重定向到任何地方
从那里
>自定义功能 –
也不做,因为一样
原因.
这个任务似乎是微不足道的,但我找不到解决方案.我将非常感谢任何帮助.
解决方法
看看
source code for django.contrib.auth decorators.他们做你想要的,但是内置的Django认证系统(
see the documentation).对于您的身份验证系统,不应该做类似的事情.
BTW,你为什么不使用内置的认证?您可以使用自定义身份验证后端…