在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实现一次创建多级目录的方法
May 15 Python
python中nan与inf转为特定数字方法示例
May 11 Python
Python实现复杂对象转JSON的方法示例
Jun 22 Python
Python面向对象之继承代码详解
Jan 29 Python
Python3.4 tkinter,PIL图片转换
Jun 21 Python
Flask框架通过Flask_login实现用户登录功能示例
Jul 17 Python
django 基于中间件实现限制ip频繁访问过程详解
Jul 30 Python
python并发编程多进程 模拟抢票实现过程
Aug 20 Python
python opencv实现信用卡的数字识别
Jan 12 Python
python中threading开启关闭线程操作
May 02 Python
python 引用传递和值传递详解(实参,形参)
Jun 05 Python
Django自定义YamlField实现过程解析
Nov 11 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
长波有什么东西
2021/03/01 无线电
业余方法DIY电子管FM收音机
2021/03/02 无线电
PHP实现清除MySQL死连接的方法
2016/07/23 PHP
JS window对象的top、parent、opener含义介绍
2013/12/03 Javascript
jquery单行文字向上滚动效果示例
2014/03/06 Javascript
三分钟带你玩转jQuery.noConflict()
2016/02/15 Javascript
浅析jQuery Ajax请求参数和返回数据的处理
2016/02/24 Javascript
浅析javascript异步执行函数导致的变量变化问题解决思路
2016/05/13 Javascript
BootStrap点击下拉菜单项后显示一个新的输入框实现代码
2016/05/16 Javascript
Node.js刷新session过期时间的实现方法推荐
2016/05/18 Javascript
浅谈jquery.form.js的ajaxSubmit和ajaxForm的使用
2016/09/09 Javascript
微信小程序 教程之引用
2016/10/18 Javascript
JavaScript通过mouseover()实现图片变大效果的示例
2017/12/20 Javascript
jackson解析json字符串,首字母大写会自动转为小写的方法
2017/12/22 Javascript
JS和Canvas实现图片的预览压缩和上传功能
2018/03/30 Javascript
vue配置接口域名方法总结
2019/05/12 Javascript
vue elementui el-form rules动态验证的实例代码详解
2019/05/23 Javascript
JS实现选项卡插件的两种写法(jQuery和class)
2020/12/30 jQuery
[47:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python实现绘制树枝简单示例
2014/07/24 Python
Python实现的数据结构与算法之快速排序详解
2015/04/22 Python
使用sklearn进行对数据标准化、归一化以及将数据还原的方法
2018/07/11 Python
Python3爬虫全国地址信息
2019/01/05 Python
Python 学习教程之networkx
2019/04/15 Python
Python动态强类型解释型语言原理解析
2020/03/25 Python
把Anaconda中的环境导入到Pycharm里面的方法步骤
2020/10/30 Python
复古服装:RetroStage
2019/05/10 全球购物
介绍一下.NET构架下remoting和webservice
2014/05/08 面试题
计算机应用专业推荐信
2013/11/13 职场文书
销售总监岗位职责
2014/01/04 职场文书
初级会计求职信范文
2014/02/15 职场文书
圆明园纪录片观后感
2015/06/03 职场文书
Golang: 内建容器的用法
2021/05/05 Golang
pytorch中的torch.nn.Conv2d()函数图文详解
2022/02/28 Python
vue中使用mockjs配置和使用方式
2022/04/06 Vue.js
CSS中calc(100%-100px)不加空格不生效
2023/05/07 HTML / CSS