Ответ 1
В Django 1.2 вы можете просто сделать
{% if var in the_list %}
как и в Python.
В противном случае да, вам понадобится настраиваемый фильтр - это трехстрочный, хотя:
@register.filter
def is_in(var, obj):
return var in obj
задавалось вопросом, есть ли способ проверить, находится ли переменная внутри списка или dict в django, используя встроенные теги и фильтры.
Ie: {% if var|in:the_list %}
Я не вижу его в документах и попытаюсь выполнить что-то обычное, если нет, но я не хочу делать что-то, что уже сделано.
Спасибо
В Django 1.2 вы можете просто сделать
{% if var in the_list %}
как и в Python.
В противном случае да, вам понадобится настраиваемый фильтр - это трехстрочный, хотя:
@register.filter
def is_in(var, obj):
return var in obj
Хотите передать запятую строку из шаблона? Создайте собственный шаблонный шаблон:
from django import template
register = template.Library()
@register.filter
def in_list(value, the_list):
value = str(value)
return value in the_list.split(',')
Затем вы можете вызвать его следующим образом:
{% if 'a'|in_list:'a,b,c,d,1,2,3' %}Yah!{% endif %}
Он также работает с переменными:
{% if variable|in_list:'a,b,c,d,1,2,3' %}Yah!{% endif %}