14
想知道是否有方法来测试变量是否在django中的列表或字典中,使用内置的标签和过滤器。Django模板:测试变量是否在列表或字典
即:{% if var|in:the_list %}
我没有看到它在该文档中,如果不将尝试一些自定义的,但我不想做一些已经完成。
感谢
想知道是否有方法来测试变量是否在django中的列表或字典中,使用内置的标签和过滤器。Django模板:测试变量是否在列表或字典
即:{% 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
想通过从模板分离串逗号?创建自定义templatetag:
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 %}
可以将列表是一样的模板:'{ %如果var在['item1','item2','item3']%}' – Sevenearths 2013-04-29 10:48:18
@Sevenearths我刚刚尝试过并且可以确认,从Django 1.5.1开始,列表**不能在**中定义'如果'这样的陈述。 – Patrick 2013-06-25 16:33:09
那我们怎么去做呢? – laycat 2013-06-26 01:04:12