Как мой шаблон хамелеона может принимать вспышки сообщений из структуры пирамиды?

Я изучаю пирамиду, и кажется, что они пытаются заставить людей использовать хамелеон вместо мако, поэтому я решил дать хамелеону шанс. Мне это нравится до сих пор, и я могу делать базовые вещи в шаблоне, такие как циклы if и for, но я не уверен, как заставить сообщения мигать появляться.

В уроке по пирамиде они делают это в списке задач, а в вики- примере - нет. В соответствии с инструкциями о сеансах и с использованием учебника todolist в качестве примера, я смог заставить свое приложение создавать сообщения, но не смог получить их в своем шаблоне. Короче говоря, мне интересно, если хамелеон имеет эквивалент этого кода Мако:

  % if request.session.peek_flash():
  <div id="flash">
    <% flash = request.session.pop_flash() %>
    % for message in flash:
    ${message}<br>
    % endfor
  </div>
  % endif

1 ответ

Решение

(Не проверенный) эквивалент в хамелеоне:

<div id="flash" tal:condition="request.session.peek_flash()">
  <span tal:omit-tag="" 
        tal:repeat="message request.session.pop_flash()">
      ${message}<br>
  </span>
</div>

tal:omit-tag атрибут не обязателен; это падает <span> тег из вывода, так как он используется только как фиктивный тег для прикрепления повторения к. Если отбросить его, вывод шаблона Chameleon будет соответствовать примеру Мако.

См. Документацию Chameleon для введения и полной спецификации того, как работает язык шаблонов.

Другие вопросы по тегам