使用django模板变量作为jade href id引用的正确语法是什么?

时间:2013-04-02 04:10:53

标签: django pug

我正在尝试使用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 ....


已解决:将django模板变量格式化为玉变量

根据@ user1737909的最后一条建议,我将建议扩展到尝试:

a(href='##{group.name}') {{group.name}}

关键是将双卷曲django变量{{}}格式化为pound-single-curly jade变量#{}。请勿在{{1​​}}符号前添加!,以便由jade评估变量 ,这将插入从django获取的值。

我希望我能找到一个包含在此处的编码风格参考页面的链接。但如果我有一个,我首先不会问这个问题。

1 个答案:

答案 0 :(得分:3)

根据@ user1737909的最后一条建议,我将建议扩展到尝试:

a(href='##{group.name}') {{group.name}}

关键是将双卷曲django变量{{}}格式化为pound-single-curly jade变量#{}。不要在!符号前包含=,以便jade评估变量,这将插入从django获取的值。

OP已更新以反映此解决方案。