Reputation: 1521
I am using django and python. In the template file, I have a drop-down list which is shown as below. It works. The only problem is that there is a lot of white space between in the source html code. Is there any way to remove the white space? Thanks.
{% 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 %}
The output html souce code looks like this:
<option value=de>German</option>
<option value=el>Greek</option>
<option value=hi>Hindi</option>
Upvotes: 34
Views: 18837
Reputation: 2921
I used custom helper function with stripping. Here is a an example I used too: https://web.archive.org/web/20140729182917/http://cramer.io/2008/12/01/spaceless-html-in-django/
Upvotes: 1
Reputation: 348
Look toward middelware, eg "htmlmin". It processes the file at a time. In addition it has a decorator. https://crate.io/packages/django-htmlmin
gzip will give the same effect. Probably would have cost to opt out of trimming. Look towards django middelware or nginx gzip.
You use the controller/model logic in the template. This is wrong way.
Upvotes: 5
Reputation: 53998
You can use the spaceless
template tag. It:
Removes whitespace between HTML tags.
{% spaceless %}
<p>
<a href="foo/">Foo</a>
</p>
{% endspaceless %}
Upvotes: 65