代码之家  ›  专栏  ›  技术社区  ›  mc_kaiser Kishy Nivas

如何删除Django模板中字符周围的空白?

  •  0
  • mc_kaiser Kishy Nivas  · 技术社区  · 6 年前

    我有一个模板,如下所示:

    ({% if condition_a %}
     <a href="{{ link_a }}" role="button">Add</a>
    {% endif %}
    {% if condtion_a and condition_b %} | {% endif %}
    {% if condition_b %}
     <a href="{{ link_b }}">Edit</a>
    {% endif %})
    

    我希望它能在单词旁边加上括号。例如,在 condition_a :

    (添加)

    但是由于html处理换行的方式,页面呈现如下:

    (添加)

    其他情况也是如此。 condition_a and conditon_b ):

    预期:

    (添加|编辑)

    结果:

    (添加|编辑)

    我试着加上Django spaceless 标记,但这不起作用,因为它只在html标记周围去除空白。我可以再加点果酱 if 我的代码中的语句,但不希望这样。

    我也试着加上 white-space: nowrap; 但是也失败了。

    有什么办法可以删去单词周围的空白吗?

    1 回复  |  直到 6 年前
        1
  •  3
  •   Action Jackson    6 年前

    执行以下操作:

    {% if condtion_a and condition_b %}
        <a href="{{ link_a }}">(Add</a> | <a href="{{ link_b }}">Edit)</a>
    {% elif condition_a %}
        <a href="{{ link_a }}">(Add)</a>
    {% elif condition_b %}
        <a href="{{ link_b }}">(Edit)</a>
    {% endif %}
    

    不要把代码分散在用括号括起来的许多行之间。直接把它们放在 <a> 而是标记。为了清理代码,我还建议将condition-a和condition-b放在最前面,这样就不必启动和停止那么多if语句 (你有3个endif's,这不是一个好习惯,当它可以做得更干净)。

    你也可以把 a b 在下面的else语句中,但是我不知道您视图中的代码,所以这可能不是一个好主意。