首页 / 知识
关于python:始终在django模板上下文中包括用户
2023-04-14 01:37:00

Always including the user in the django template context我正在为一家小型公司的小型Intranet网站工作,用户应该可以在其中发布信息。我想象过一种非常简单的身份验证机制,人们只需输入他们的电子邮件地址,并向其发送一个唯一的登录URL,该URL就会设置一个cookie,该cookie将始终为将来的请求标识他们。 在我的模板设置中,我有base.html,其他页面对此进行了扩展。我想在base.html中显示"登录"或"注册"按钮,但是如何确保必要的变量始终是上下文的一部分?似乎每个视图只是按照自己的喜好设置了上下文,并且没有全局上下文总体。有没有一种方法可以在不包含用户的情况下创建每个上下文? 还是我必须创建自己的自定义快捷方式才能正确设置上下文? 如果您已经在 如果使用的是django 1.4或最新版本,则模块已移至 @Ryan:有关预处理器的文档有点小 @Staale:每次在视图中调用模板DRY 时,将用户添加到上下文中 解决方案是使用预处理器 A:在您的设置中添加
B:在myapp / processor_file_name.py中插入
从现在开始,您就可以在模板中使用用户对象功能。
从一般意义上讲,不必在每个视图中显式设置变量,这听起来像是您想研究编写自己的上下文处理器。 来自文档:
每个答案中都有提示,但是对于新手,还是从"从头开始": 默认情况下,身份验证数据位于模板中(几乎)-有一个小技巧: :
:
从这里:https://docs.djangoproject.com/en/1.4/topics/auth/#authentication-data-in-templates
@戴夫 所以我想模板引擎不会检查任何全局变量。 但是RequestContext有一些预填充的类,我可以通过这些类来解决我的问题。谢谢。 如果您可以将身份验证与Django身份验证方案挂钩,则可以使用 我认为这只是基于Cookie的内容调用 编辑:@Staale-我始终在上下文中使用 在默认情况下可能会执行以下步骤,以确保已在设置中添加了上下文" django.contrib.auth.context_processors.auth"。默认情况下,它添加到settings.py中,所以它看起来像这样
您可以像这样访问用户对象,
有关更多信息,请参见http://docs.djangoproject.com/en/1.2/topics/auth/#authentication-data-in-templates 使用context_processors。 https://docs.djangoproject.com/zh-CN/2.2/ref/settings/#std:setting-TEMPLATES-OPTIONS
|
最新内容
相关内容
linux下用户权限命令?
linux下用户权限命令?,管理,系统,密码,地址,权限,时间,基础,信息,基本知识,工作,Linux用户以及权限相关常用命令总结sudo和su类似,有一些附加的linux用户名改名命令?
linux用户名改名命令?,系统,密码,命令,代码,名称,用户名,用户,终端,主机名,文件,linux下命令怎么修改用户名1、Linux系统中用户切换的命令为sulinux输入命令后乱码?
linux输入命令后乱码?,系统,乱码,中文,情况,环境,地方,名称,字符集,服务器,字符,linux中文显示乱码在命令行输入”dpkg-reconfigure locales”linux输入命令无反应?
linux输入命令无反应?,密码,系统,数据,命令,工具,时报,信息,检测,文件,反应,LINUX能连,但是命令输入后没反应,什么原因?原因总结:i18n语言配置linux用户分组命令?
linux用户分组命令?,系统,命令,电脑,信息,时间,标准,资料,用户,文件,用户组,Linux命令行操作之sedsed命令行格式为:sed [-nefri] ‘command’linux命令改用户所属?
linux命令改用户所属?,系统,文件,名称,用户组,命令,用户,名录,基本知识,所有者,终端,linux修改用户属组命令1、打开自己的linux系统。接着打开linux命令行输入引号?
linux命令行输入引号?,系统,密码,命令,电脑,标准,地方,环境,管理,名字,表示,问一个Linux命令\,这个引号中的是什么意思?.反单引号,表示它所包含linux系统用户组命令?
linux系统用户组命令?,系统,管理,密码,代码,用户组,用户,命令,邮箱,电脑,名称,Linux命令之用户组管理在Linux中,用户组是一种将一组用户聚合在linux用户管理的命令?
linux用户管理的命令?,系统,管理,信息,地址,工作,用户,单位,基础,数据,命令,Linux系统下用户以及权限管理1、第一类:root(超级管理员),UID为0,这个linux输入命令删除键?
linux输入命令删除键?,名称,系统,档案,命令,文件,目录,不了,数据,文件夹,终端,linux删除命令是什么Linux的文件和目录的删除命令有:rm、rmdir、linux用户退出命令行?
linux用户退出命令行?,状态,档案,标准,系统,命令,文件,模式,编辑,指令,主机,linux退出vi编辑命令先按ESC进入Command模式,然后输入“:wq”,回车就linux多个命令输入?
linux多个命令输入?,系统,工具,工作,命令,电脑,地址,信息,软件,服务,连续,Linux多台主机批量执行命令执行命令(记得先对doCommand.s h增加执行