Jinja:检查变量是否可迭代

时间:2016-07-27 22:07:33

标签: python django jinja2

Jinja有办法检查变量是否可迭代?我正在使用Django并依赖于我是否使用objects.filterobjects.get response发送到jinja模板是否可以迭代。

我尝试了以下内容:

{% extends 'header.html' %}

{% block content %}
{% if response is iterable %}
    {% for i in response %}
        <p>i</p>
    {% endfor %}
{% else %}
     {{ response }}
{% endif %}
{% endblock %}

然而,Django抛出:Unused 'is' at end of if expression.

2 个答案:

答案 0 :(得分:3)

上面的答案不再对我有用,但是下面的答案适用:

{% if response is iterable %}

一个需要注意的地方是,它会认为字符串是可迭代的(确实如此),然后会遍历字符串中的每个字母,可能更合适的检查是:

{% if response is iterable and response is not string %}

答案 1 :(得分:1)

尝试:

{% if iterable(response) %}