当我尝试渲染此模板时:
{% include "mylistitem.html" with text="foo" btn_text="bar" href="{% url 'register' %}" %}
它会产生以下错误:
TemplateSyntaxError:无法解析其余部分:“” {%”中的“” {%'
在文档中我找不到任何地方无法嵌套表达式。 我该怎么做?
答案 0 :(得分:1)
您可以使用两个步骤,而不是一步一步完成操作:
{% url 'register' as some_var %}
{% include "mylistitem.html" with text="foo" btn_text="bar" href=some_var %}
因此,我们在这里首先将{% url ... %}
模板标签的结果分配给变量(此处称为some_var
),然后使用该变量调用{% include ... %}
。
此行为记录在documentation on the url
template tag中:
(...)
如果您想在不显示URL的情况下获取URL ,则可以使用 通话略有不同:
{% url 'some-url-name' arg arg2 as the_url %} <a href="{{ the_url }}">I'm linking to {{ the_url }}</a>
答案 1 :(得分:1)
我不认为您可以嵌套模板标签。
解决当前问题的方法是:
{% url 'register' as register_url %}
{% include "mylistitem.html" with text="foo" btn_text="bar" href=register_url %}
这是一个重复的问题:Nested Django tags