2

カスタム インデックスを設定するために、階層上の特定のオブジェクトを取得しようとしています。通常、request.PARENTS を使用してオブジェクトを取得します。

def getHierarchyObject(obj):
    cparents = obj.request.get('PARENTS')
    for cparent in cparents:
        if cparent.Type() == u'SpecificType':
            return cparent
    return false

しかし、インデックスを設定することはできません。親のリクエストは空です。このリンクに従ってインデックスを作成しました: http://plone.org/products/dexterity/documentation/manual/developer-manual/advanced/catalog

aq_parent()オブジェクトを見つけるには、すべてのレベルを登る必要がありますか?

4

1 に答える 1

3

PARENTSリクエストでは、パブリッシュされたオブジェクトに到達するためにトラバースしたオブジェクトのシーケンスです。

オブジェクトは公開されないため、オブジェクトにインデックスを付ける必要がある場合、その値に依存することはできません。

代わりに、獲得チェーンを使用します。

from Acquisition import aq_inner, aq_chain

def getParentObject(obj, type):
    for parent in aq_chain(aq_inner(obj)):
        if parent.Type() == type:
            return parent
于 2013-03-12T14:28:37.030 に答える