在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 相关文章推荐
Python用GET方法上传文件
Mar 10 Python
Python开发的实用计算器完整实例
May 10 Python
高效测试用例组织算法pairwise之Python实现方法
Jul 19 Python
Python实现基于多线程、多用户的FTP服务器与客户端功能完整实例
Aug 18 Python
Pycharm 实现下一个文件引用另外一个文件的方法
Jan 17 Python
Django框架视图函数设计示例
Jul 29 Python
docker django无法访问redis容器的解决方法
Aug 21 Python
pytorch的batch normalize使用详解
Jan 15 Python
python opencv如何实现图片绘制
Jan 19 Python
Python类class参数self原理解析
Nov 19 Python
python使用scapy模块实现ARP扫描的过程
Jan 21 Python
Python中else的三种使用场景
Jun 16 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
基于php-fpm的配置详解
2013/06/03 PHP
phpmyadmin打开很慢的解决方法
2014/04/21 PHP
PHP+shell脚本操作Memcached和Apache Status的实例分享
2016/03/11 PHP
Laravel5.7框架安装与使用学习笔记图文详解
2019/04/02 PHP
TP5框架实现签到功能的方法分析
2020/04/05 PHP
用javascript实现无刷新更新数据的详细步骤 asp
2006/12/26 Javascript
FormValid0.5版本发布,带ajax自定义验证例子
2007/08/17 Javascript
javascript xml为数据源的下拉框控件
2009/07/07 Javascript
JavaScript设计模式之工厂模式和构造器模式
2015/02/11 Javascript
利用JavaScript的AngularJS库制作电子名片的方法
2015/06/18 Javascript
JavaScript计算器网页版实现代码分享
2016/07/15 Javascript
nodejs和C语言插入mysql数据库乱码问题的解决方法
2017/04/14 NodeJs
jquery 动态遍历select 赋值的实例
2018/09/12 jQuery
使用koa-log4管理nodeJs日志笔记的使用方法
2018/11/30 NodeJs
基于Koa(nodejs框架)对json文件进行增删改查的示例代码
2019/02/02 NodeJs
JS桶排序的简单理解与实现方法示例
2019/11/25 Javascript
Vue+Node实现的商城用户管理功能示例
2019/12/23 Javascript
浅谈Vuex的this.$store.commit和在Vue项目中引用公共方法
2020/07/24 Javascript
Jquery Fade用法详解
2020/11/06 jQuery
Django在Win7下的安装及创建项目hello word简明教程
2014/07/14 Python
在Python的Django框架中实现Hacker News的一些功能
2015/04/17 Python
TensorFlow入门使用 tf.train.Saver()保存模型
2018/04/24 Python
将Dataframe数据转化为ndarry数据的方法
2018/06/28 Python
python单线程文件传输的实例(C/S)
2019/02/13 Python
python并发爬虫实用工具tomorrow实用解析
2019/09/25 Python
python使用beautifulsoup4爬取酷狗音乐代码实例
2019/12/04 Python
如何基于python3和Vue实现AES数据加密
2020/03/27 Python
中国网上药店领导者:1药网
2017/02/16 全球购物
COACH德国官方网站:纽约现代奢侈品牌,1941年
2018/06/09 全球购物
世界排名第一的运动鞋市场:Flight Club
2020/01/03 全球购物
美国名牌手表折扣网站:Jomashop
2020/05/22 全球购物
食品销售计划书
2014/04/26 职场文书
感恩母亲节演讲稿
2014/05/07 职场文书
2014年个人工作总结模板
2014/12/15 职场文书
2015个人年度工作总结范文
2015/05/28 职场文书
2016高考寄语集锦
2015/12/04 职场文书