检查列表django模板中是否存在

时间:2011-09-20 07:46:58

标签: django django-templates

我想检查一个值是否属于django模板中的列表。像这样的东西

{%if ['Pass','Fail']%}中的值

我怎样才能做到这一点?

4 个答案:

答案 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 %}">