2010-04-09 5 views
13

w szynach ERB, można stłumić nowe linie dodając myślnik trailing tags:Czy mogę ukrywać nowe linie po każdym szablonie z silnikiem szablonów Django?

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

staje:

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

Czy istnieje sposób, aby to zrobić w Django? (Ujawnienie: Generuję plik csv z Django)

Edycja: wyjaśniono, że nowe znaki, których szukam, są tymi pozostawionymi po znacznikach .

Odpowiedz

4

Najbliższe znalezione rzeczy, których szukasz (szukam tego samego), mówią o przyszłej poprawce, tutaj: http://code.djangoproject.com/ticket/2594.

Niestety, wygląda na to, że nie ma wiele można zrobić, dopóki nie łączyć tego patcha w.

+1

Nigdy nie połączą tej łaty. Raport o błędzie został zamknięty z wiadomością mówiącą, że silnik szablonowy Django nie będzie widział nowych funkcji i że planuje, że Jinja będzie wybranym silnikiem dla Django. – Louis

0

Kiedy piszesz szablon, możesz otworzyć ul zakodowany na stałe w szablonie i zapętlać przedmioty tr, które powracają tam z wartością.

O ile mi wiadomo, nie ma do tego funkcji domyślnej.

1

Na przykład:

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

Albo ten, który pozbawia również spacje/tabulatory/etc, pomiędzy znacznikami HTML:

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

Twój drugi przykład usuwa wszystkie znaki nowej linii, a nie tylko te spowodowane przez tagi szablonów we własnych wierszach. Twój pierwszy przykład po prostu usuwa nowe linie, jeśli obiekt je ma .... nie dokładnie to, o co prosił OP. – CodeBlock

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

nie jestem świadomy o jakikolwiek sposób odrzucić szablonu oznacza linie. Głosowałbym za otwarciem raportu o błędzie.

+4

Spowoduje to usunięcie wszystkich znaków nowego wiersza, nie powoduje to zanegowania znaków nowej linii z wierszy zawierających tylko tagi szablonów. – CodeBlock

1

Jest 2016 teraz i myślę, że ten problem jest nadal obecny. W tym samouczku https://www.youtube.com/watch?v=vQjmz9wCjLA około 1:45 unieruchomienie szablonu pokazuje, że na końcu tagu znajduje się końcowy znak nowej linii.

+2

Jest już 2017, i wciąż nie ma rozsądnego rozwiązania tego! – NirIzr