は、私は現在、私のジャンゴ1.1.2テンプレートでこの構文を使用しています:Djangoテンプレートを使用して複数の値をチェックする方法はありますか?
{% ifnotequal myvalue 'ABC' %}
しかし、私は今、それが「ABC」または「DEF」だかどうかを確認するために「myvalue」をチェックする必要があります。何かご意見は?
は、私は現在、私のジャンゴ1.1.2テンプレートでこの構文を使用しています:Djangoテンプレートを使用して複数の値をチェックする方法はありますか?
{% ifnotequal myvalue 'ABC' %}
しかし、私は今、それが「ABC」または「DEF」だかどうかを確認するために「myvalue」をチェックする必要があります。何かご意見は?
私はビューでこの平等を決定することをお勧め(詳細はコメントを参照してください)それをコンテキストに渡してテンプレートに戻します。テンプレートでは、myvalue
の代わりに変数をテストして何を表示するかを決定します。
Djangoのテンプレートはsome simple logicをサポートします:
{% if myvalue == 'ABC' or myvalue == 'DEF' %}
注:この機能は、Djangoの1.2で追加されましたは
django 1.2以降を使用している場合はin operator
を使用できます。それ以外の場合は、django(documentation)で独自のtemplatetagsを使用することができます。
{% load is_member %}
{% if element is_member_of ["ABC", "DEF"] %}
show some stuff
{% endif %}
しかし、もしを次のように今、あなたはあなたのテンプレートでtemplatetagを使用することができますフォルダを作成し、アプリ-folerでtemplatetags/is_member.py
を提出し、以下の内容
from django import template
register = template.Library()
@register.filter
def is_member_of(element, list):
return element in list
でファイルを保存します可能な限りFurbeenatorの方法を使用してください。
templatetagsは常に高速でクリーンでスマートなソリューションです – juliomalegria
または[in operator](https://docs.djangoproject.com/en/dev/ref/templates/builtins/?from=olddocs#in-operator) ) –
あなたは正しいですが、in演算子は1.2より前に存在せず、質問はdjango 1.1.2に関するものでした。しかし私は私の答えを編集しました。 – blacklwhite
残念ながら、私は "AND"条件ではなく、 "OR"条件が必要です。私はあなたのアドバイスをテンプレートの外で平等を判断し、それを下流に渡すつもりです。第一の答えとしてそれを反映するためにあなたのコメントを更新し、私はそれを承認します。 – Huuuze