カテゴリフィールドに3つのカテゴリがあります。私はdjangoのテンプレートでそれをチェックし、3つの異なるカテゴリのappropirteのURLを割り当てたいです。djangoテンプレートで同時にif、elif、else条件をチェックする方法
私が試した:
{% for entry in entries %}
{% if entry.category == 1 %}
<a href="{% url 'member:person-list' %}"><li>{{ entry.category }}</li></a>
{% elif entry.category == 2 %}
<a href="{% url 'member:execomember-list' %}"><li>{{ entry.category}}</li></a>
{% else %}
<a href="{% url 'member:lifemember-list' %}"><li>{{ entry.category}}</li></a>
{% endif %}
{% empty %}
<li>No recent entries</li>
{% endfor %}
をしかし、私はPythonの場合のみで、最初に一致した状態を確認してください知っています。したがって、1つの望ましい結果しか得られなかった。正しいリンクで3つのエントリをすべて取得するにはどうすればよいですか?
編集:パイソンものの
条件ならば、それはENDFORループまで、それぞれの状態を確認するときに使用するのelif内のループのためにのみ、最初のマッチングを確認してください。したがって、下の私の答えは正常に働いた。出力の
{% for entry in entries %}
{% if entry.category == 'General Member' %}
<a href="{% url 'member:person-list' %}"><li>{{ entry.category }}</li></a>
{% elif entry.category == 'Executive Committee Member' %}
<a href="{% url 'member:execomember-list' %}"><li>{{ entry.category}}</li></a>
{% else %}
<a href="{% url 'member:person-list' %}"><li>{{ entry.category}}</li></a>
{% endif %}
{% empty %}
<li>No recent entries</li>
{% endfor %}
ウェブページビュー:
何がこのようなテンプレートにロジックを最小限にするために、あなたの
Entry
モデルにリファクタリング持つことができますか?これは全く明確ではありません。それぞれの 'entry.category'は一度に一つの条件にしかマッチできません。あなたは何を達成したいですか? –非常に不明です、申し訳ありません。 'しかし、私はPythonが最初に' 'if''と一致する条件をチェックすることを知っています。何を期待していますか? – Saksow
私は3つのカテゴリすべての出力を期待しています。 3つのカテゴリは区別され、それぞれに別々のリストがあるためです。だから私は正しいリストを得るためにそれらのリンクですべての3つのカテゴリの名前を取得したい。そしてこのリストは彼らのURLから得られるでしょう。私はそれがあなたをクリアすることを願っています – ohid