GAE / Django TemplateError - PullRequest
       10

GAE / Django TemplateError

2 голосов
/ 19 мая 2011

У меня есть приложение Google App Engine, использующее шаблоны Django.Я пытаюсь сделать это:

{% if person.age >= 4 %}
      <p style="color:White">Hello</p>
{% else %}
      <p style="color:Black">Hello</p>
{% endif %}

Это не работает, я получаю: "TemplateSyntaxError: 'if' оператор неправильно отформатирован".Между тем (поскольку некоторые значения равны None), это работает:

{% if person.age %}
      <p style="color:White">Hello</p>
{% else %}
      <p style="color:Black">Hello</p>
{% endif %}

Я не понимаю, почему не работает первый пример, вот ссылка на Шаблоны Django Я думаю, что следуюПримеры операторов достаточно близки, за исключением того факта, что это свойство, а не переменная

Ответы [ 3 ]

2 голосов
/ 19 мая 2011

Какую версию Django вы используете?

Версией по умолчанию в App Engine является 0,96, и оператор >= не поддерживается до версии 1.2.

Вы можете переключиться на 1,2, добавивэто выше любого вашего импорта, связанного с шаблоном:

import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

from google.appengine.dist import use_library
use_library('django', '1.2')
2 голосов
/ 19 мая 2011

Делать, если person.age и person.age> = 4

Таким образом, если person.age имеет значение None, он не пройдёт первую проверку и не выдаст синтаксическую ошибку во второй.

0 голосов
/ 19 мая 2011

Как вы говорите, так как некоторые значения не равны нулю, он выдаст синтаксическую ошибку. Лучше вы можете проверить существование person.age, а затем выполнить проверку следующим образом.

{% if person.age and person.age >= 4 %}
      <p style="color:White">Hello</p>
{% else %}
      <p style="color:Black">Hello</p>
{% endif %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...