18

これが本当に簡単で、ドキュメントでざっと見ただけなのか、それともこれが Django テンプレート システムの制限なのかはわかりませんが、Django で少し (それほどではない) 高度なロジックを実行できるようにする必要があります。 、そして私はむしろ自分自身を繰り返す必要はありません。

3 つのブール値があるとします。A、B、および C。

私は基本的に行う必要があります:

{% if A and (B or C) %}
    {{ do stuff }}
{% endif %}

(B or C)ただし、Django では、論理を括弧でグループ化することは許可されていないようです。Django のテンプレート言語でそのようなグループ化を行う方法はありますか? または、次のような非 DRY バージョンを実行する必要がありますか。

  {% if A and B %}
        {{ do stuff }}
  {% else %}
      {% if A and C %}
          {{ do the same stuff }}
      {% endif %}
  {% endif %}
4

3 に答える 3

6

かっこ内のものを変数に代入します。

{% with B or C as D %}
  {% if A and D %}
    {{ do stuff }}
  {% endif %}
{% endwith %}

PS: これは新しいバージョンでは機能しません。

于 2016-01-05T06:40:17.910 に答える