2012-01-13 8 views
3

における基本レイアウトテンプレートを使用して:私は気づいここUXのものに素敵なチュートリアルがあるピラミッドのドキュメントではカメレオン

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

ことの一つは、彼らはセットアップと 'の周りに渡しているチュートリアルでありますグローバルレイアウト 'をコード内に明示的に指定します(下記参照)。

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> 

答えて

5

(ビューを経由して)間接的な方法より柔軟に対応できます。小規模なプロジェクトではそのメリットはあまり明らかではありませんが、このアプローチは確かに大きなもので実現します。 "load:"はmain_template(Zope/Plone-speakの中で)をここに登録しています。このビューでは、どこからでも来て、テンプレートとは独立して変更できます。

+0

ああ、それは理にかなっています。洞察に感謝します。 – lostdorje

関連する問題