Django模板问题 - {%if object | length> 4%}引发TemplateDoesNotExist:500.html

tat*_*ata 9 comparison filter django-templates

我的模板中有以下内容.

{% block content %}
    {% for album in albumsList %}
        {% if fotosList %}
            <div class="photoalbum-wrapper">
                <h3>{{ album.title }}</h3>
                <ul class="photoalbum">
                    {% for foto in fotosList %}<li>item</li>{% endfor %}
                </ul>
                {% if fotosList|length > 4 %}
                    <a href="#" class="trigger">?????? <span>&#9660;</span></a>
                {% endif %}
            </div>
        {% endif %}  
    {% endfor %}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

它引发了TemplateDoesNotExist:500.html.

如果我写{{ fotoList|length }}得很简单就行了.

Mar*_*mro 11

这是一个非常古老的问题.由于Django的较新版本支持if-statement中的运算符开箱即用,因此以下代码可以正常工作:

{% if fotosList|length > 4 %}

{% endif %}
Run Code Online (Sandbox Code Playgroud)


Nil*_*are 6

fotosList.count而不是fotosList|length.你会得到理想的结果.


spy*_*der 5

仅供参考,如果Django 开发版本现在支持带有运算符 ==、!=、<、>、<=、>= 的标签。


mip*_*adi 2

{% if fotosList|length > 4 %}不是有效标签;您不能在 Django 标记中使用大于/小于运算符if。(您可以在最新的开发版本中使用运算符,但我假设您没有使用 Django SVN 存储库中的最新版本。)

您收到错误的原因TemplateDoesNotExist是 Django 抛出 500 内部服务器错误(由于标记无效),但您尚未提供 500.html 错误模板,如此处所述