清理Plone'中的注释;s CMF条件历史对象
我正在尝试清理已卸载Plone加载项的内容注释(iAnotation)。我已成功浏览了所有网站内容,并删除了live objects中的注释 但是,CMFEditions/versioning保留了旧的内容副本,我不知道如何遍历它们并删除它们上的所有不良注释清理Plone'中的注释;s CMF条件历史对象,plone,versioning,Plone,Versioning,我正在尝试清理已卸载Plone加载项的内容注释(iAnotation)。我已成功浏览了所有网站内容,并删除了live objects中的注释 但是,CMFEditions/versioning保留了旧的内容副本,我不知道如何遍历它们并删除它们上的所有不良注释 除非我能清理这些对象引用,否则在从构建中删除外接程序后,在编辑包含注释且历史记录中缺少对象的内容时,就会出现ZODB BrokerNoObject错误。这太糟糕了。另一个原因是插件应该只对其所有数据存储使用基元类型 我有一些伪代码可以让你接
除非我能清理这些对象引用,否则在从构建中删除外接程序后,在编辑包含注释且历史记录中缺少对象的内容时,就会出现ZODB BrokerNoObject错误。这太糟糕了。另一个原因是插件应该只对其所有数据存储使用基元类型 我有一些伪代码可以让你接近:
repo_tool = getToolByName(obj, "portal_repository")
if not repo_tool.isVersionable(obj):
return
history = repo_tool.getHistoryMetadata(obj)
if not history:
return
length = history.getLength(countPurged=False)
for i in xrange(length - 1, -1, -1):
try:
version = repo_tool.retrieve(obj, i)
annotations = IAnnotations(version.object)
del annotations[KEY_TO_DELETE]
except POSKeyError:
pass