Шаблоны Django: проверка наличия переменной в списке - PullRequest
18 голосов
/ 25 июня 2010

интересовался, есть ли способ проверить, находится ли переменная внутри списка или диктовать в django, используя встроенные теги и фильтры.

То есть: {% if var|in:the_list %}

Я не вижу этого в документации и попытаюсь сделать что-то нестандартное, если нет, но я не хочу делать то, что уже было сделано.

Спасибо

Ответы [ 2 ]

36 голосов
/ 25 июня 2010

В Django 1.2 вы можете просто сделать

{% if var in the_list %}

как в Python.

В противном случае да, вам понадобится пользовательский фильтр - это три линии:

@register.filter
def is_in(var, obj):
    return var in obj
3 голосов
/ 05 октября 2017

Хотите передать строку с разделителями-запятыми из шаблона?Создайте собственный шаблон тега:

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 %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...