假设我在模板中有这样的代码:
<a href="#">
{% if request.user.first_name or request.user.last_name %}
{{ request.user.first_name }} {{ request.user.last_name }}
{% else %}
{{ request.user }}
{% endif %}
</a>
此代码的问题在于它会为链接添加尾随空格,因此链接看起来像 link _,并在末尾加下划线。
如何删除此类尾随空格? {% spaceless %}
标记在这里没有多大帮助,因为它只删除标记之间的空格。
答案 0 :(得分:9)
我实际上找到了解决问题的简单方法。
<a href="#">{% spaceless %}
{% if request.user.first_name or request.user.last_name %}
{{ request.user.first_name }} {{ request.user.last_name }}
{% else %}
{{ request.user }}
{% endif %}
{% endspaceless %}</a>
通过在其中放置无空间标签,剥去它所获得的字符串。放在外面
答案 1 :(得分:1)
作为决定的可能变体: http://www.soyoucode.com/2011/minify-html-output-django
如果没有这样的标签,您可以尝试创建自己的标签: https://docs.djangoproject.com/en/dev/howto/custom-template-tags/
答案 2 :(得分:0)
快速解决方法:使用html注释“转义”不必要的空格。 可能更好的解决方案:创建一个包含此条件的模板标记。
答案 3 :(得分:0)
借用单个模板标签的用法 - 从模板中删除此逻辑会很好(而且非常简单)。
虽然,不只是使用{{ request.user }}
给出与你在这里做的完全相同的结果吗?
答案 4 :(得分:0)
而不是if-else阻止尝试使用更短的版本:
{{ user.get_full_name|default:user.get_username }}