如何编写可向模板传递当前年份year变量的context processor?
现有代码问题
- 语法错误:你写的返回值用大括号包裹两个独立值,生成的是Python集合类型,而Django上下文处理器要求必须返回键值对结构的字典,格式完全不符合规范
- 变量匹配错误:需求要求模板中通过
{{ year }}调用年份,你没有定义year作为字典的键,模板无法读取到对应变量 - 取值逻辑错误:不需要把
request对象放入返回值中,且你返回的是完整的日期对象,不是需求要求的年份数字 - 冗余导入:导入了
date模块但实际没有使用,属于无效导入
修正方案
调整后的代码
from datetime import datetime def year(request): return { 'year': datetime.now().year }
后续配置检查
确保你已经在Django项目的settings.py中,将core.context_processors.year.year添加到TEMPLATES配置项的context_processors列表里,配置完成后模板就可以正常调用{{ year }}渲染版权年份了。
内容的提问来源于stack exchange,提问作者Panda91
相关产品推荐
相关产品推荐

