Ответ 1
Ближайшее, что я нашел к тому, что вы ищете (я ищу то же самое), говорит о будущем патче, здесь: http://code.djangoproject.com/ticket/2594.
К сожалению, похоже, что вы не можете много сделать, пока не скомпилируете этот патч.
В 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)
Изменить: Уточнено, что новые строки, которые я ищу, - это те, которые остались после тегов шаблона.
Ближайшее, что я нашел к тому, что вы ищете (я ищу то же самое), говорит о будущем патче, здесь: http://code.djangoproject.com/ticket/2594.
К сожалению, похоже, что вы не можете много сделать, пока не скомпилируете этот патч.
{% spaceless %}
<ul>
<li>apple</li>
<li>banana</li>
<li>cacao</li>
</ul>
{% endspaceless %}
Я не знаю, как отменить шаблонные теги. Я проголосовал за открытие отчета об ошибке.
Например:
<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 }}
Сейчас 2016 год, и я думаю, что этот вопрос все еще присутствует. В этом уроке https://www.youtube.com/watch?v=vQjmz9wCjLA примерно в 1:45 unittest шаблона показывает, что в конце тега есть конечная новая строка.
Когда вы пишете шаблон, вы можете открыть ul, жестко закодированную в шаблоне, и зацикливать элементы trought, возвращающие туда значение с помощью в нем.
Насколько я знаю, для этого нет функции по умолчанию.