我想检查一个值是否属于django模板中的列表。像这样的东西
{%if ['Pass','Fail']%}中的值
我怎样才能做到这一点?
答案 0 :(得分:35)
我认为您不能直接在模板中定义列表。您可以将列表传递给模板并执行
{% if value in my_list %}
例如:
{% if name in 'foo,bar' %}
bla
{% endif %}
或者,您可以编写一个模板标记,其中包含以下参数:
{% ifinlist value "val1,val2,val3" %}
答案 1 :(得分:6)
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
答案 2 :(得分:1)
您可以将if条件写为
{%if%' Pass,Fail' %}
不需要模板标签或后端列表
答案 3 :(得分:0)
如何将列表传递到模板?我个人在这样的通用视图中使用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 %}">