Я хочу проверить, принадлежит ли значение списку в шаблоне django. Что-то вроде этого
{%, если значение в ['Pass', 'Fail']%}
Как я могу это достичь?
Ответ 1
Я не думаю, что вы можете определить список непосредственно в шаблоне. Вы можете передать список шаблону и сделать
{% if value in my_list %}
Например:
{% if name in 'foo,bar' %}
bla
{% endif %}
В качестве альтернативы, вы можете написать шаблонный тег, который принимает такие параметры:
{% ifinlist value "val1,val2,val3" %}
Ответ 2
Шаблон Django:
{% value|ifinlist:"val1,val2,val3" %}
Тег шаблона:
from django import template
register = template.Library()
@register.filter(name='ifinlist')
def ifinlist(value, list):
return True if value in list else False
Ответ 3
Вы можете написать условие if как
{% if значение в 'Pass, Fail'%}
Нет необходимости тега шаблона или списка из бэкэнда
Ответ 4
Как передать список вашему шаблону? Я лично использую атрибут extra_context в общих представлениях, как это:
class MyObjectDetailView(DetailView):
model = MyObject
template_name = "path/to/object_detail.html"
extra_context = {'DISABLED': [model.ACCEPTED, model.REFUSED]}
Затем в моем шаблоне, например, отключить btn:
<input class="btn"{% if object.status in DISABLED %} disabled="disabled"{% endif %}">