我正在尝试使用 django 模板for
循环生成导航表。href 目标包含一个 django 变量。django模板是jade格式写的。
如果我在 django 模板中使用 HTML 格式,我会使用:
<a href="#{{group.name}}"> {{group.name}} </a>
但我找不到使用翡翠格式的正确语法。
我所拥有的是:
table.generic
tbody
tr
th Jump to a Group
{% for group in groups %}
tr
td
a(href!='#{{group.name}}') {{group.name}}
{% endfor %}
但是锚在 HTML 中呈现为:
<a +{group.name.__str__()+'}'="" href="">Registration</a>
“注册”是 group.name 的值。
删除!
导致 django 渲染错误的原因。
我试图插入一个反斜杠: a(href!='#\{{group.name}}') {{group.name}}
,但这会将反斜杠完整呈现为:
<a href="#\Registration">Registration</a>
建议?
编辑:作为一个糟糕的解决方法,我添加了一个“磅”方法来返回带有#
前缀的组名:
def pound(self):
return unicode("#" + self.name)
现在我可以在翡翠模板中引用{{group.pound}}:
a(href!='{{group.pound}}') {{group.name}}
也许更好的方法名称是 group.name_as_id_tag ....
已解决:将 django 模板变量格式化为玉变量
根据@user1737909 的最后建议,我将建议扩展为尝试:
a(href='##{group.name}') {{group.name}}
关键是将双卷曲 django 变量格式化{{}}
为 pound-single-curly Jade 变量#{}
。不要!
在符号之前包含=
符号,这样变量就会由翡翠评估,这将插入它从 django 获得的值。
我希望我能找到一个指向编码风格参考页面的链接以包含在此处。但如果我有一个,我一开始就不会问这个问题。