2

我有一个使用灵巧plone.app.stagingbehavior安装的自定义类型。我可以签入并签出我的自定义类型,但尝试查看差异会导致堆栈跟踪,因为plone.app.iterate.browser.diff.DiffView似乎不知道如何获取基线和工作副本版本使用灵巧/粘贴行为制作的对象。

我确实尝试覆盖 DiffView 并将其更改为使用来自plone.app.stagingbehavior.utils的 get_baseline 和 get_working_copy ,但差异视图仍然不起作用(有一个不同的例外,Products.Archetypes 中的一万级深,所以我假设它不太可能工作)。在这一点上,也许collective.dexteritydiff 会有所帮助。

这有点令人困惑,因为 Pastagingbehavior 在其plone.app.iterate.checkout_info portlet 版本中包含指向 @@iterate_diff 的链接,这让我认为它可以正常工作,也许我的设置已损坏或我做错了什么。

4

1 回答 1

0

问题是由于plone.app.iterate.browser.diff.DiffView尚未与 Dexterity 兼容。diff-view 调用context.getReferences会在灵巧对象上引发 AttributeError。由于这发生在一个__init__方法中,所以追溯被吞没了。它应该使用__call__和代码来获取引用plone.app.stagingbehavior.utils

于 2014-07-28T09:08:59.677 回答