如何在Django的url模板标签中传递日期参数并解决解析报错
Django url模板标签传参报错修复方案
错误原因
- Django模板语法有明确的边界区分:
{% %}用于包裹模板标签逻辑,{{ }}用于输出变量值,二者禁止嵌套使用。你在{% url %}标签内部又用{{ }}包裹日期参数,导致模板解析器无法正常识别字符,触发解析报错。
修复方法
直接删除{% url %}标签内部的{{ }}包裹符,直接写变量和过滤器即可,修正后的模板代码如下:
<a href="{% url 'diary:show_date' date|date:'Y' date|date:'m' date|date:'j' %}">{{ date }}</a>
额外校验点
- 确认模板上下文中的
date变量是合法的日期/时间对象,可正常通过date过滤器输出对应格式的数值 - 确认路由所属的Django应用命名空间为
diary,和url标签中的命名空间前缀匹配 - 确认参数顺序和路由定义的年、月、日顺序一致,输出的参数值均为整数类型,匹配路由的
int类型约束
内容的提问来源于stack exchange,提问作者Chamodh Nethsara
相关产品推荐
相关产品推荐

