Как я могу проверить несколько значений, используя шаблон Django? - PullRequest
3 голосов
/ 31 января 2012

В настоящее время я использую этот синтаксис в своем шаблоне Django 1.1.2:

{% ifnotequal myvalue 'ABC' %}

Однако теперь мне нужно проверить «myvalue», чтобы увидеть, является ли он «ABC» или «DEF».Есть мысли?

Ответы [ 3 ]

3 голосов
/ 31 января 2012

Если вы используете django 1.2 или выше, вы можете использовать in operator. В противном случае вы можете использовать свои собственные теги-шаблоны в django ( документация ).

Создайте папку и файл templatetags/is_member.py в приложении-загрузчике и сохраните файл со следующим содержимым

from django import template
register = template.Library()

@register.filter
def is_member_of(element, list):
  return element in list

Теперь вы можете использовать тег шаблона в вашем шаблоне следующим образом

{% load is_member %}
{% if element is_member_of ["ABC", "DEF"] %}
  show some stuff
{% endif %}

Но, если возможно, воспользуйтесь способом Фурбиенатора.

3 голосов
/ 31 января 2012

Шаблоны Django поддерживают некоторую простую логику :

{% if myvalue == 'ABC' or myvalue == 'DEF' %}

ПРИМЕЧАНИЕ: Эта функциональность была добавлена ​​в Django 1.2 (подробности см. В комментариях)

1 голос
/ 31 января 2012

Я бы предложил определить это равенство в представлении и передать его в контексте обратно в шаблон.В шаблоне вы должны проверить переменную вместо myvalue, чтобы определить, что отображать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...