在Django的模板中使用认证数据的方法


Posted in Python onJuly 23, 2015

当前登入的用户以及他(她)的权限可以通过 RequestContext 在模板的context中使用。

注意

从技术上来说,只有当你使用了 RequestContext这些变量才可用。 并且TEMPLATE_CONTEXT_PROCESSORS 设置包含了 “django.core.context_processors.auth” (默认情况就是如此)时,这些变量才能在模板context中使用。 TEMPLATE_CONTEXT_PROCESSORS 设置包含了 "django.core.context_processors.auth" (默认情况就是如此)时,这些变量才能在模板context中使用。

当使用 RequestContext 时, 当前用户 (是一个 User 实例或一个 AnonymousUser 实例) 存储在模板变量 {{ user }} 中:

{% if user.is_authenticated %}
 <p>Welcome, {{ user.username }}. Thanks for logging in.</p>
{% else %}
 <p>Welcome, new user. Please log in.</p>
{% endif %}

这些用户的权限信息存储在 {{ perms }} 模板变量中。

你有两种方式来使用 perms 对象。 你可以使用类似于 {{ perms.polls }} 的形式来检查,对于某个特定的应用,一个用户是否具有 任意 权限;你也可以使用 {{ perms.polls.can_vote }} 这样的形式,来检查一个用户是否拥有特定的权限。

这样你就可以在模板中的 {% if %} 语句中检查权限:

{% if perms.polls %}
 <p>You have permission to do something in the polls app.</p>
 {% if perms.polls.can_vote %}
  <p>You can vote!</p>
 {% endif %}
{% else %}
 <p>You don't have permission to do anything in the polls app.</p>
{% endif %}
Python 相关文章推荐
如何解决django配置settings时遇到Could not import settings 'conf.local'
Nov 18 Python
python根据出生日期返回年龄的方法
Mar 26 Python
Pycharm学习教程(7)虚拟机VM的配置教程
May 04 Python
Python实现的科学计算器功能示例
Aug 04 Python
详解flask表单提交的两种方式
Jul 21 Python
python用列表生成式写嵌套循环的方法
Nov 08 Python
对Django的restful用法详解(自带的增删改查)
Aug 28 Python
django框架两个使用模板实例
Dec 11 Python
python时间日期操作方法实例小结
Feb 06 Python
Python configparser模块常用方法解析
May 22 Python
python使用re模块爬取豆瓣Top250电影
Oct 20 Python
python定义具名元组实例操作
Feb 28 Python
在Django中管理Users和Permissions以及Groups的方法
Jul 23 #Python
Django中对通过测试的用户进行限制访问的方法
Jul 23 #Python
在Django中限制已登录用户的访问的方法
Jul 23 #Python
详解Django框架中用户的登录和退出的实现
Jul 23 #Python
在Django的session中使用User对象的方法
Jul 23 #Python
Django的session中对于用户验证的支持
Jul 23 #Python
在Django的视图(View)外使用Session的方法
Jul 23 #Python
You might like
兼容ie6浏览器的php下载文件代码分享
2014/07/14 PHP
PHP在线书签系统分享
2016/01/04 PHP
轻松掌握php设计模式之访问者模式
2016/09/23 PHP
PHP插件PHPMailer发送邮件功能
2017/02/28 PHP
php中bind_param()函数用法分析
2017/03/28 PHP
深入理解PHP中mt_rand()随机数的安全
2017/10/12 PHP
PHP使用Session实现上传进度功能详解
2019/08/06 PHP
thinkphp5框架路由原理与用法详解
2020/02/11 PHP
one.php 多项目、函数库、类库 统一为一个版本的方法
2020/08/24 PHP
用js查找法实现当前栏目的高亮显示的代码
2007/11/24 Javascript
juqery 学习之五 文档处理 插入
2011/02/11 Javascript
使用JavaScript动态设置样式实现代码(2)
2013/01/25 Javascript
JavaScript中创建对象和继承示例解读
2014/02/12 Javascript
html5+javascript制作简易画板附图
2014/04/25 Javascript
jquery常用函数与方法汇总
2015/09/01 Javascript
javascript字符串替换函数如何一次性全部替换掉
2015/10/30 Javascript
jQuery中ajax的load()与post()方法实例详解
2016/01/05 Javascript
js cookie实现记住密码功能
2017/01/17 Javascript
js 性能优化之快速响应的用户界面
2017/02/15 Javascript
vant picker+popup 自定义三级联动案例
2020/11/04 Javascript
[01:20:47]DOTA2-DPC中国联赛 正赛 Ehome vs Magma BO3 第一场 1月19日
2021/03/11 DOTA
跟老齐学Python之使用Python操作数据库(1)
2014/11/25 Python
在cmd中运行.py文件: python的操作步骤
2018/05/12 Python
Python使用lambda抛出异常实现方法解析
2020/08/20 Python
html5-websocket基于远程方法调用的数据交互实现
2012/12/04 HTML / CSS
HTML5之HTML元素扩展(上)—新增加的元素及使用概述
2013/01/31 HTML / CSS
Abbott Lyon官网:女士手表、珠宝及配件
2020/12/26 全球购物
路政管理专业个人自荐信范文
2013/11/30 职场文书
教师研修随笔感言
2014/01/23 职场文书
学校就业推荐信范文
2014/05/19 职场文书
经济类毕业生求职信
2014/06/26 职场文书
经贸日语专业自荐信
2014/09/02 职场文书
2014年精神文明工作总结
2014/12/23 职场文书
见习期个人总结
2015/03/05 职场文书
导游词之宿迁乾隆行宫
2019/10/15 职场文书
uwsgi+nginx代理Django无法访问静态资源的解决
2021/05/10 Servers