Can I suppress newlines after each template tag with Django's template engine?

后端 未结 5 2316
醉梦人生
醉梦人生 2021-02-19 08:05

In Rails ERB, you can suppress newlines by adding a trailing hyphen to tags:

    <% for @item in @items -%>
  • <%= @item %>
相关标签:
5条回答
  • 2021-02-19 08:49

    The closest I've found to what you're looking for (I'm looking for the same thing) is talk about a future patch, here: http://code.djangoproject.com/ticket/2594.

    Unfortunately, it looks like there's not much you can do until they merge that patch in.

    0 讨论(0)
  • 2021-02-19 08:53
    {% spaceless %}
    <ul>
        <li>apple</li>
        <li>banana</li>
        <li>cacao</li>
    </ul>
    {% endspaceless %}
    

    I am not aware about any way to discard template tags lines. I'd vote for opening bug report.

    0 讨论(0)
  • 2021-02-19 08:55

    For example:

    <ul>
    {% for obj in list %}
        <li>{{ obj|linebreaksbr|striptags }}</li>
    {% endfor %}
    </ul>
    

    Or this, which also strips whitespaces/tabs/etc, between HTML tags:

    {{ spaceless }}
    <ul>
    {% for obj in list %}
        <li>{{ obj }}</li>
    {% endfor %}
    </ul>
    {{ endspaceless }}
    
    0 讨论(0)
  • 2021-02-19 08:59

    When you write a template, you could open the ul hardcoded in the template and looping trought items en returning there value with the in it.

    As far as i know there isn't a default function for that.

    0 讨论(0)
  • 2021-02-19 09:05

    It is 2016 now, and I think this issue is still present. In this tutorial https://www.youtube.com/watch?v=vQjmz9wCjLA at around 1:45 a unittest of a template shows that there is a trailing newline on the end of the tag.

    0 讨论(0)
提交回复
热议问题