Ploneでは、ビュークラスインスタンスにメンバー変数を追加すると、自動的にビュー取得チェーンの一部になります。この問題は、ここで詳しく説明されています。
この問題に対処するための推奨されるアプローチは何ですか
暗黙の取得なしでPloneのメインテンプレートベースのビューを持つことはできますか
では、ビューレットとポートレット レンダラーはどうでしょうか。
そうでない場合... self.xxx 変数が余分な取得ラッピングを取得しないように、どのように問題に対処する必要がありますか?
Ploneでは、ビュークラスインスタンスにメンバー変数を追加すると、自動的にビュー取得チェーンの一部になります。この問題は、ここで詳しく説明されています。
この問題に対処するための推奨されるアプローチは何ですか
暗黙の取得なしでPloneのメインテンプレートベースのビューを持つことはできますか
では、ビューレットとポートレット レンダラーはどうでしょうか。
そうでない場合... self.xxx 変数が余分な取得ラッピングを取得しないように、どのように問題に対処する必要がありますか?
Acquisition.aq_inner()
余分なラッピングを取り除き、オブジェクトを元のパスに復元するために使用します。リンク先のドキュメントで説明されている単一アイテムリストアプローチは使用しないでください。
リンクされたドキュメントから1つの例を示しますが、次のように修正しaq_inner()
ます。
from Acquisition import aq_inner
self.obj = self.context.reference_catalog.lookupObject(value)
return aq_inner(self.obj).absolute_url() # Acquistion chain corrected
aq_inner
または、次の属性を使用することもできます。
self.obj = self.context.reference_catalog.lookupObject(value)
return self.obj.aq_inner.absolute_url() # Acquistion chain corrected
Acquisition.Explicit
ただし、これはまたはから継承するオブジェクトでのみ機能しますAcquisition.Implicit
。関数は、aq_inner()
Acquisitionでラップされたオブジェクトでない場合、渡された引数を逐語的に返します。