Django模板{%if x.number == 0%}不起作用

时间:2013-03-13 10:41:11

标签: django

{% if x.number == 1 %}{% if x.number == 2 %}效果很好

{% if x.number == 0 %}不起作用。为什么呢?

  {% for d in data %}
    {% for x in d.animalnumber_set.all %}

        {{ x.number }} <!-- Nothing displays. ->
        {% if x.number == 1 %}
            <p>Something</p>
        {% endif %}

        {% if x.number == 2 %}
            <p>Something 2</p>
        {% endif %}

        {% if x.number == 0 %}
            <p>Nothing</p>
        {% endif %}
    {% endfor %}
  {% endfor %}

编辑:

在提交的数据库numberchoices。如何替换{% if x.number == 0 %}== None也不起作用。

----
1
2
3
4

2 个答案:

答案 0 :(得分:2)

如果数据没有值或0,请使用not

{% if not x.number %}

答案 1 :(得分:1)

如果可选择的选项在1-6之间,为什么要检查x.number == 0?这永远不会发生。

如果用户没有任何动物编号,则d.animalnumber_set.all将返回None。所以控制就是检查x是否为空

{% for d in data %}
    {% for x in d.animalnumber_set.all %}

        {% if x.number == 1 %}
            <p>Something</p>
        {% endif %}

        {% if x.number == 2 %}
            <p>Something 2</p>
        {% endif %}
    {% empty %}
        <p>Nothing</p>
    {% endfor %}
{% endfor %}