python – 如何在django的每个视图中运行一段代码?

前端之家收集整理的这篇文章主要介绍了python – 如何在django的每个视图中运行一段代码?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要在我的一个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,你为什么不使用内置的认证?您可以使用自定义身份验证后端…

猜你在找的Python相关文章