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 回答