我正在尝试使用django模板for
循环生成导航表。 href目标包括django变量。 django模板以jade格式编写。
如果我在django模板中使用HTML格式,我会使用:
<a href="#{{group.name}}"> {{group.name}} </a>
但我无法使用jade格式找到正确的语法。
我拥有的是:
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)
现在我可以在jade模板中引用{{group.pound}}:
a(href!='{{group.pound}}') {{group.name}}
也许更好的方法名称是group.name_as_id_tag ....
根据@ user1737909的最后一条建议,我将建议扩展到尝试:
a(href='##{group.name}') {{group.name}}
关键是将双卷曲django变量{{}}
格式化为pound-single-curly jade变量#{}
。请勿在{{1}}符号前添加!
,以便由jade评估变量 ,这将插入从django获取的值。
我希望我能找到一个包含在此处的编码风格参考页面的链接。但如果我有一个,我首先不会问这个问题。
答案 0 :(得分:3)
根据@ user1737909的最后一条建议,我将建议扩展到尝试:
a(href='##{group.name}') {{group.name}}
关键是将双卷曲django变量{{}}
格式化为pound-single-curly jade变量#{}
。不要在!
符号前包含=
,以便jade评估变量,这将插入从django获取的值。
OP已更新以反映此解决方案。