python - [Django]如何让每一个template都可以获取user信息
漂亮男人
漂亮男人 2017-07-05 10:34:29
[Python讨论组]

比如用Django搭一个网站,大部分的页面都会含有user的信息,比如用户名,头像等等。

但是我不可能每个view都传一个user变量进context吧?

我这种需求一般如何实现呢?

漂亮男人
漂亮男人

全部回复(5)
typecho

你多虑了,不用你手动一个个写的,默认已经有了,直接用就行,比如:{{user.username}}
不过没有头像等自定义的字段信息。
或者 你自定义一个context_processors.py,用于返回你想要的信息,然后在settings.py里导入。 就不需要在每个函数都返回了

PHP中文网
如果你是使用的auth.login()登录的话,你可以在任何一个模板里直接使用user对象
如{{user.username}}
PHP中文网

应该是{{request.user.username}}.
而且django支持设置全局变量

習慣沉默

用户登录后,用户信息一般都会存在request.user里,不需要传user变量进context, 前提是在settings里引用了 django.template.context_processors.request

我想大声告诉你

补充一点:如果很多页面都会出现固定的一部分内容,可以采取模板继承的方法,将相同的部分提取出来,通过extends和include对模板的内容进行修改。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号