Fix Python – django template display item value or empty string

Question

Asked By – Roger Liu

My code in template is like this:

{% for item in items %}
    {{ item.somefield }}
{% endfor %}

I want to display the item value if the item.somefield is not None, or display an empty string. I don’t want to use the {% if item.somefield %} statement, I want something like {{ item.somefield or ” }}(I tried this but it doesn’t work)

Now we will see solution for issue: django template display item value or empty string


Answer

You want the default_if_none template filter, (doc).

default_if_none will display the given string if the variable is ‘None’.

default will display the string if the variable evaluates to False, ie empty strings, empty lists etc

{{ item.somefield|default_if_none:"" }}
{{ item.somefield|default:"" }}

This question is answered By – rockingskier

This answer is collected from stackoverflow and reviewed by FixPython community admins, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0