How to deal with NULL value in template

6,232 views
Skip to first unread message

Continuation

unread,
Dec 18, 2009, 2:12:24 AM12/18/09
to Django users
I have a field with the null=True option

How do I test for the Null value in template?

I did something like:

{% ifequal field Null %}
do something
{% else %}
do something else

I tested it and it worked. But I want to make sure this is the proper
way to handle Null value in Django. The doc is a bit unclear.

Also does it matter if I type out null as "Null", "null", or "NULL" in
the above example?

Daniel Roseman

unread,
Dec 18, 2009, 4:08:11 AM12/18/09
to Django users

The Python equivalent of null is None - if you explicitly need to
check for that value, that's how you should spell it.

However normally the better way of doing it is just
{% if field %}
etc, since None is boolean false, as is False, 0 and [].
--
DR.

Continuation

unread,
Dec 18, 2009, 3:43:55 PM12/18/09
to Django users
I tried

{% if field %}
No
{% else %}
Yes - {{ field }}
{% endif %}

And if the value of field is null, the else statement above ended up
getting executed and output was "Yes - None"

So far for me:

{% ifequal field Null %} and {% ifequal field None %} works.

But

{% if field %}

doesn't.

Did I do something wrong?

lei sun

unread,
Dec 29, 2009, 4:36:47 AM12/29/09
to django...@googlegroups.com
Maybe you just store "Null",which is a simple string, in your sql.Storing None to replace.

2009/12/19 Continuation <selfor...@gmail.com>
--

You received this message because you are subscribed to the Google Groups "Django users" group.
To post to this group, send email to django...@googlegroups.com.
To unsubscribe from this group, send email to django-users...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.



Daniel Roseman

unread,
Dec 29, 2009, 10:47:33 AM12/29/09
to Django users
On Dec 18, 9:43 pm, Continuation <selforgani...@gmail.com> wrote:
> I tried
>
> {% if field %}
>    No
> {% else %}
>   Yes - {{ field }}
> {% endif %}
>
> And if the value of field is null, the else statement above ended up
> getting executed and output was "Yes - None"
>
> So far for me:
>
> {% ifequal field Null %} and {% ifequal field None %} works.
>
> But
>
> {% if field %}
>
> doesn't.
>
> Did I do something wrong?

You had it the wrong way round. {% if field %} tests whether the field
is *not* None or 0 or '' or []. So swap the Yes and No branches.
--
DR.

Reply all
Reply to author
Forward
0 new messages