Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django模板:测试变量是否在列表或dict中_Django_Templates - Fatal编程技术网

Django模板:测试变量是否在列表或dict中

Django模板:测试变量是否在列表或dict中,django,templates,Django,Templates,我想知道是否有一种方法可以使用内置的标记和过滤器测试django中的变量是否在列表或dict中 Ie:{%if var|in:the_list%} 我在文档中没有看到它,如果没有,我会尝试一些定制的东西,但我不想做一些已经做过的事情 谢谢在Django 1.2中,您只需 {% if var in the_list %} 就像在Python中一样 否则是的,您将需要一个自定义过滤器-它是一个三衬板: @register.filter def is_in(var, obj): return

我想知道是否有一种方法可以使用内置的标记和过滤器测试django中的变量是否在列表或dict中

Ie:
{%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 %}
在Django 3。。。 简单地说就是:

someHtmlPage.html

<html>
    {%if v.0%}
        <p>My string {{v}}</p>
    {%else%}
        <p>My another typy {{v}}</p>
    {%endif%}
</html>

{%if v.0%}
我的字符串{{v}

{%else%} 我的另一种类型{{v}

{%endif%}
列表是否可以在模板中,如:
{%if var in['item1'、'item2'、'item3']%}
@Sevenearths我刚刚尝试过它,并且可以确认,从Django 1.5.1开始,列表不能在类似的
if
语句中定义。那么我们该如何做呢?@laycat:我们必须与上下文中给出的列表变量进行比较。顺便说一句:如何完全避免Django模板语言?这个答案并没有回答这个问题。在回答的示例中,您访问的是数组中的一个位置,而不是所有位置。