Django-templates problem {% if object|Länge > 4 %} wirft TemplateDoesNotExist: 500.html
Habe ich Folgendes in mein template.
{% 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>▼</span></a>
{% endif %}
</div>
{% endif %}
{% endfor %}
{% endblock %}
Und es stellt sich die TemplateDoesNotExist: 500.html.
Wenn ich das einfach schreiben {{ fotoList|length }}
es funktioniert okay.
InformationsquelleAutor tataata | 2010-01-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
fotosList.count
stattfotosList|length
. Sie erhalten gewünschte Ergebnis.fotosList
ist einQuerySet
oder etwas anderes, das diecount()
Es wird nicht arbeiten mit collections, Listen, Tupel, etc.
InformationsquelleAutor Nilesh Tighare
Dies ist eine sehr alte Frage. Da als neuere Versionen von Django Unterstützung Operatoren in if-Anweisung out of the box, also der folgende code funktioniert Prima:
InformationsquelleAutor Mariusz Jamro
FYI wenn tags mit den Operatoren ==, !=, <, >, <=, >= werden unterstützt in der Entwicklung version von Django.
InformationsquelleAutor spyder
{% if fotosList|length > 4 %}
ist nicht ein gültiges tag, Sie können es nicht verwenden, größer - /kleiner-Operatoren in der Djangoif
tag. (Sie kann Verwendung Betreiber in der neuesten Entwicklungsversion, aber ich nehme an, Sie sind nicht mit der neuesten version von Django-SVN-repository.)Der Grund, warum Sie bekommen die
TemplateDoesNotExist
Fehler ist, weil Django wirft einen 500 Internal Server Error (aufgrund der ungültigen tag), aber Sie haben nicht geliefert 500.html Fehler der Vorlage, wie erwähnt,hier.InformationsquelleAutor mipadi