Могу ли я подавлять новые строки после каждого шаблона с помощью механизма шаблонов Django?

В Rails ERB вы можете подавлять символы новой строки, добавляя трейлинг-дефис в теги:

<ul>
  <% for @item in @items -%>
    <li><%= @item %></li>
  <% end -%>
</ul>

становится:

<ul>
    <li>apple</li>
    <li>banana</li>
    <li>cacao</li>
</ul>

Есть ли способ сделать это в Django? (Раскрытие: я создаю файл csv с Django)

Изменить: Уточнено, что новые строки, которые я ищу, - это те, которые остались после тегов шаблона.

Ответы

Ответ 1

Ближайшее, что я нашел к тому, что вы ищете (я ищу то же самое), говорит о будущем патче, здесь: http://code.djangoproject.com/ticket/2594.

К сожалению, похоже, что вы не можете много сделать, пока не скомпилируете этот патч.

Ответ 2

{% spaceless %}
<ul>
    <li>apple</li>
    <li>banana</li>
    <li>cacao</li>
</ul>
{% endspaceless %}

Я не знаю, как отменить шаблонные теги. Я проголосовал за открытие отчета об ошибке.

Ответ 3

Например:

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

Или это, которое также разделяет пробелы/табуляции/etc, между тегами HTML:

{{ spaceless }}
<ul>
{% for obj in list %}
    <li>{{ obj }}</li>
{% endfor %}
</ul>
{{ endspaceless }}

Ответ 4

Сейчас 2016 год, и я думаю, что этот вопрос все еще присутствует. В этом уроке https://www.youtube.com/watch?v=vQjmz9wCjLA примерно в 1:45 unittest шаблона показывает, что в конце тега есть конечная новая строка.

Ответ 5

Когда вы пишете шаблон, вы можете открыть ul, жестко закодированную в шаблоне, и зацикливать элементы trought, возвращающие туда значение с помощью в нем.

Насколько я знаю, для этого нет функции по умолчанию.