2012-10-29 11 views
23

Używam django i Pythona. W pliku szablonu mam rozwijaną listę, która jest pokazana poniżej. To działa. Jedynym problemem jest to, że pomiędzy źródłowym kodem html jest dużo spacji. Czy istnieje sposób na usunięcie białej przestrzeni? Dzięki.Jak usunąć białą przestrzeń z kodu źródłowego html

  {% for lang_ele in video.languages.all %} 
       {% ifequal lang_ele.lang display_language %} 
        {% for key, value in language_table.items %} 
         {% ifequal lang_ele.lang key%} 
         <option selected = "selected" value={{lang_ele.lang}}>{{value}}</option> 
         {% endifequal %} 
        {% endfor %} 
       {% else %} 
        {% for key, value in language_table.items %} 
         {% ifequal lang_ele.lang key%} 
         <option value={{lang_ele.lang}}>{{value}}</option> 
         {% endifequal %} 
        {% endfor %} 

       {% endifequal %} 
      {% endfor %} 

Wyjście kod html sos wygląda następująco:

<option value=de>German</option> 


<option value=el>Greek</option> 


<option value=hi>Hindi</option> 
+4

Powinieneś spróbować zaakceptować więcej swoich poprzednich pytań. To da ludziom więcej motywacji, aby Ci pomóc. –

+0

Prawdopodobnie powiązane: http://stackoverflow.com/questions/11713464/compaacting-minifying-dynamic-html – deadly

Odpowiedz

44

Możesz użyć znacznika szablonu spaceless. To:

Usuwa białe znaki między znaczników HTML.

{% spaceless %} 
<p> 
    <a href="foo/">Foo</a> 
</p> 
{% endspaceless %} 
3
  1. Spójrz ku middelware, np "htmlmin". Przetwarza plik na raz. Ponadto ma dekorator. https://crate.io/packages/django-htmlmin

  2. gzip da taki sam efekt. Prawdopodobnie będzie kosztowało zrezygnować z przycinania. Spójrz na django middelware lub nginx gzip.

  3. użyć logiki kontrolera/modelu w szablonie. To jest niewłaściwy sposób.

Powiązane problemy