在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获取CPU、内存使用率以及网络使用状态代码
Feb 08 Python
用python实现百度翻译的示例代码
Mar 09 Python
Python基于百度AI的文字识别的示例
Apr 21 Python
Python如何爬取实时变化的WebSocket数据的方法
Mar 09 Python
wxPython:python首选的GUI库实例分享
Oct 05 Python
Python 装饰器@,对函数进行功能扩展操作示例【开闭原则】
Oct 17 Python
python 读写文件包含多种编码格式的解决方式
Dec 20 Python
Python CSV文件模块的使用案例分析
Dec 21 Python
python中查看.db文件中表格的名字及表格中的字段操作
Jul 07 Python
python报错: 'list' object has no attribute 'shape'的解决
Jul 15 Python
pandas处理csv文件的方法步骤
Oct 16 Python
python wsgiref源码解析
Feb 06 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
利用discuz自带通行证整合dedecms的方法以及文件下载
2007/03/06 PHP
PHP 地址栏信息的获取代码
2009/01/07 PHP
PHP获取windows登录用户名的方法
2014/06/24 PHP
PHPExcel笔记, mpdf导出
2016/05/03 PHP
php根据命令行参数生成配置文件详解
2019/03/15 PHP
js电信网通双线自动选择技巧
2008/11/18 Javascript
使用js实现雪花飘落效果
2013/08/26 Javascript
JavaScript的History API使搜索引擎抓取AJAX内容
2015/12/07 Javascript
动态设置form表单的action属性的值的简单方法
2016/05/25 Javascript
原生js封装二级城市下拉列表的实现代码
2016/06/16 Javascript
JS锚点的设置与使用方法
2016/09/05 Javascript
Jquery Easyui搜索框组件SearchBox使用详解(19)
2016/12/17 Javascript
原生js实现下拉框功能(支持键盘事件)
2017/01/13 Javascript
JavaScript设计模式之策略模式详解
2017/06/09 Javascript
Vue Transition实现类原生组件跳转过渡动画的示例
2017/08/19 Javascript
Vue中computed与methods的区别详解
2018/03/24 Javascript
详解小程序循环require之坑
2019/03/08 Javascript
微信小程序和H5页面间相互跳转代码实例
2019/09/19 Javascript
Python的爬虫程序编写框架Scrapy入门学习教程
2016/07/02 Python
Django中利用filter与simple_tag为前端自定义函数的实现方法
2017/06/15 Python
Python实现爬取需要登录的网站完整示例
2017/08/19 Python
Python数据结构与算法之二叉树结构定义与遍历方法详解
2017/12/12 Python
python如何爬取个性签名
2018/06/19 Python
详解python实现交叉验证法与留出法
2019/07/11 Python
解决Python中报错TypeError: must be str, not bytes问题
2020/04/07 Python
自学python用什么系统好
2020/06/23 Python
python按顺序重命名文件并分类转移到各个文件夹中的实现代码
2020/07/21 Python
了解一下python内建模块collections
2020/09/07 Python
python中的yield from语法快速学习
2020/11/06 Python
中间件的定义
2016/08/09 面试题
关于运动会广播稿300字
2014/10/05 职场文书
大雁塔英文导游词
2015/02/10 职场文书
接待员岗位职责范本
2015/04/15 职场文书
2015年社区党务工作总结
2015/04/21 职场文书
致毕业季:你如何做好自己的职业生涯规划书?
2019/07/01 职场文书
MYSQL优化之数据表碎片整理详解
2022/04/03 MySQL