2

{% 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 %}

编辑:

在数据库number字段中是choices. 如何更换{% if x.number == 0 %}== None也不起作用。

----
1
2
3
4
4

2 回答 2

3

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

{% if not x.number %}
于 2013-03-13T10:53:00.087 回答
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 %}
于 2013-03-13T11:24:48.997 回答