Код шаблона GAE для проверки есть элемент в списке - PullRequest
0 голосов
/ 25 декабря 2009

Как использовать оператор "in" для проверки, есть элемент в списке или нет. Если я использую:

{% for picture in pictures %}
   {% if picture in article.pictures %}
      <input type="checkbox" checked="true" name="picture" value="{{ picture.key }}"  />
   {% else %}
      <input type="checkbox" name="picture" value="{{ picture.key }}"  />
   {% endif %}
      <img src='/img?img_id={{ picture.key }}'></img> <br />
{% endfor %}

это не с:

TemplateSyntaxError: 'if' statement improperly formatted

на линии

{% if picture in article.pictures %}

помощь?

Ответы [ 2 ]

2 голосов
/ 25 декабря 2009

По умолчанию шаблоны Django не поддерживают полные условные выражения. Вы можете проверить, является ли одно значение "true" с помощью if, или вы можете проверить, равны ли два значения с ifequal и т. Д.

Возможно, вы сможете украсить picture s в представлении, прежде чем рендерить шаблон.

for picture in pictures:
    picture.is_in_article = (picture in article.pictures)

Затем в шаблоне вы можете воздействовать на значение этого нового атрибута.

{% for picture in pictures %}
    {% if picture.is_in_article %}
        <input type="checkbox" checked="true" name="picture" value="{{ picture.key }}"  />
    {% else %}
        <input type="checkbox" name="picture" value="{{ picture.key }}"  />
    {% endif %}
    <img src='/img?img_id={{ picture.key }}'></img> <br />
{% endfor %}
1 голос
/ 25 декабря 2009

Я не работал с GAE, но код для пользовательского тега "ifin" Django можно найти в патче здесь . Как упоминалось в моем комментарии, похоже, что функциональность может быть реализована в Django 1.2

...