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 を確認するのですか? これは決して起こりません。

ユーザーがanimalnumberを持っていない場合、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 に答える