2012-03-09 16 views
1

いくつかのページでコレクションの結果を表示しようとしています。私が理解しているのは、コレクションテンプレートのコンテキストの外側でページテンプレートのコードをレンダリングすることができないということです(context.collection-id.getCatalog()を使用しました)。任意のアイデアやポインタが便利です。コレクションの結果にアクセスするにはどうすればいいですか?

results.pt

<tal:block repeat="objectItem python:context.queryCatalog()" > 
    <a tal:attributes="href objectItem/getURL" ><tal:title content="objectItem/Title" />  </a><br/> 
    <tal:block tal:define="obj objectItem/getObject;" > 
      <tal:block content="structure obj/text/output" /> 
    </tal:block> 

しかし

私はその作業罰金コレクションフォルダのコンテキストの外形以下のような何かを行う場合。

<tal:block tal:content="structure context/collection-id/results" /> 

結果は上記のコードを持つコレクションフォルダ内のページテンプレートです。

+1

collection-idとは何ですか?コレクションのIDであれば、これを行うことはできません。あなたはPythonのような何かをすることができます:getattr(context、 'collection-id')あなたのコレクションオブジェクトを取得するには – Jihaisse

+0

これを答えとして入れてください。これは私が探していたものに一歩近づいたのでです。 – WEBBYFOX

答えて

4

ちょうどあなたのコレクションを参照してcontextを置き換える:

<tal:block repeat="objectItem context/collection-id/queryCatalog"> 

ありqueryCatalog方法についての魔法のようなものはありませんが、あなたがコレクションのインスタンス自体ではなく、任意のコンテキストでそれを呼び出す必要があります。 :-)

+0

+ 1良い説明 –

関連する問題