использование базовых шаблонов макета в хамелеоне - PullRequest
3 голосов
/ 13 января 2012

В документации по пирамиде есть хороший учебник по UX:

http://docs.pylonsproject.org/projects/pyramid_tutorials/en/latest/humans/creatingux/step07/index.html

Одна вещь, которую я заметил, это то, что в учебном пособии они явно устанавливают и распространяют «глобальный макет» в коде (см. Ниже). Я подумал, что это необычно и не нужно, потому что я всегда просто использовал команду load, как показано в документации:

http://chameleon.repoze.org/docs/latest/

Это просто вопрос личных предпочтений или есть реальные преимущества в настройке и использовании «глобального макета» таким образом?

Класс базового представления учебника:

class Layouts(object):
    @reify
    def global_template(self):
        renderer = get_renderer("templates/global_layout.pt")
        return renderer.implementation().macros['layout']

Файл шаблона учебного пособия:

<div metal:use-macro="view.global_template">
    <div metal:fill-slot="content">
        <p>Home page content goes here.</p>
    </div>
</div>

Но в моих файлах шаблонов я просто использую:

<div metal:use-macro="load: global_layout.pt">
    <div metal:fill-slot="content">
        <p>Home page content goes here.</p>
    </div>
</div>

1 Ответ

5 голосов
/ 13 января 2012

Косвенный способ (через просмотр) дает вам больше гибкости.Преимущества не столь очевидны в небольшом проекте, но такой подход, безусловно, окупается в более крупном.«Load:» - это гарнизировать ваш main_template (в Zope / Plone-говорить), чтобы быть здесьС точки зрения, он может прийти из любого места и изменить независимо от ваших шаблонов.

...