Korzystanie z szablonów Django w Google App Engine (na Pythonie), czy możliwe jest porównanie zmiennej szablonu do liczby całkowitej w bloku {% if %}
?Czy mogę porównać zmienną szablonu z liczbą całkowitą w szablonach Django/App Engine?
views.py:
class MyHandler(webapp.RequestHandler):
def get(self):
foo_list = db.GqlQuery(...)
...
template_values['foos'] = foo_list
template_values['foo_count'] = len(foo_list)
handler.response.out.write(template.render(...))
Mój szablon:
{% if foo_count == 1 %}
There is one foo.
{% endif %}
to wysadza z 'if' statement improperly formatted
.
Co ja próbuje zrobić w moim szablonu było zbudować prosty if/Elif/else drzewo być poprawne gramatycznie, aby móc stwierdzić
#foo_count == 0:
There are no foos.
#foo_count == 1:
There is one foo.
#else:
There are {{ foos|length }} foos.
Przeglądając dokumenty szablonów Django (this link warunkiem in the GAE documentation wydaje być dla wersji Django znacznie nowszej niż obsługiwana na GAE), wygląda na to, że mogę tylko używać operatorów boolean (jeśli w rzeczywistości operatory boolowskie są obsługiwane w tej starszej wersji Django) z ciągami lub innymi zmiennymi szablonu.
Czy nie można porównywać zmiennych z liczbami całkowitymi lub nie-łańcuchowymi za pomocą szablonów Django?
Jestem pewien, że istnieje prosty sposób obejścia tego - zbudowano ciąg znaków po stronie Pythona, a nie w szablonie - ale wydaje się, że taka prosta operacja powinna być w stanie obsłużyć w szablonie .
Wygląda na to, że powinienem przejść na bardziej zaawansowany mechanizm szablonowania, ale ponieważ jestem nowy w Django (szablony lub jakakolwiek jego część), chciałbym najpierw uzyskać pewne potwierdzenie.
System szablonów webapp pochodzi z Django 0.96; Dokumentacja znajduje się pod adresem http://www.djangoproject.com/documentation/0.96/ Nowsze wersje Django są dostępne w App Engine, ale może być trudno je załadować, jeśli korzystamy z webappa, a nie z całej struktury django. – geoffspear