0

在 Plone 中,容器对象的 ModificationDate 和生效日期确实返回了上次修改容器的时间,但不跟踪包含对象的修改时间。

我想知道是否有更好的方法,或者甚至是一些简单的内置方法来替代这种尴尬且可能非常慢的查询来确定容器内容被修改的日期 - 或者在下面的这种情况下 - 最后一次是'添加'。

def getFolderModificationDate(folderBrain, catalog):
    """Returns last time content was modified inside a folder"""

    brains = catalog.search(query_request={ "path": folderBrain.getPath(),
                                            "portal_type": 'Article',
                                            'review_state':'published'},
                            sort_index = 'effective',
                            reverse=1,
                            limit=1)

    if brains:
        return brains[0].ModificationDate
    else:
        #return the folder's modificationDate
        return folderBrain.ModificationDate

此日期将在非克隆应用程序的下游用作缓存文件夹内容的哈希值。

4

1 回答 1

2

不,这正是我会做的。

另一种方法是使用事件来更新父文件夹的修改日期,但这会产生冲突错误的风险。

于 2013-09-04T06:59:16.157 回答