加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-16 23:38:46 所属栏目:Python 来源:网络整理
导读:我需要在我的一个Django应用程序(我不使用Django内置的验证系统)的每个视图中检查用户授权,并将用户重定向到“登录请求”页面,如果授权失败. 代码如下所示: try: admin_from_session = request.session['admin']; admin = Administrator.objects.get(login
我需要在我的一个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,你为什么不使用内置的认证?您可以使用自定义身份验证后端…

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读