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

この日付は、フォルダーのコンテンツをキャッシュするためのハッシュ値として、plone 以外のアプリケーションでダウンストリームで使用されます。

4

1 に答える 1

2

いいえ、それはまさに私がそうする方法です。

別の方法として、イベントを使用して親フォルダーの変更日を更新することもできますが、競合エラーが発生するリスクがあります。

于 2013-09-04T06:59:16.157 に答える