如何在Django的include模板标签中动态传入url标签的slug参数?
解决Django include模板动态传slug到url标签的问题
错误原因:你在子模板里写的
{% url '{{slug}}' %}是错误写法,Django的url标签接受视图/URL模式名称的变量时,不需要用双大括号包裹变量,嵌套的模板语法会被当成字符串处理,导致Django找不到对应的URL模式,从而抛出NoReverseMatch错误。正确写法:
- 父模板保持原有写法即可:
{% include 'my-template.html' with slug='someslug' link_title='My Link Title' %} - 子模板直接使用变量名,去掉嵌套的双大括号:
<a href="{% url slug %}">{{link_title}}</a>
- 父模板保持原有写法即可:
扩展场景:如果你的URL模式需要多个参数(比如主键ID+slug),同样直接在
url标签里传递变量即可:
父模板:{% include 'my-template.html' with url_name='article_detail' article_id=456 slug='hello-world' link_title='查看文章' %}子模板:
<a href="{% url url_name article_id slug %}">{{link_title}}</a>
内容的提问来源于stack exchange,提问作者asking for a friend
相关产品推荐
相关产品推荐

