我有一个使用dexterity和plone.app.stagingbehavior安装的自定义类型。我可以签入并签出我的自定义类型,但是尝试查看diff会导致堆栈跟踪,因为plone.app.iterate.browser.diff.DiffView似乎不知道如何获得使用dexterity / pa制作的对象的基线和工作副本版本stagingbehavior。
我确实尝试重写DiffView并将其更改为使用来自plone.app.stagingbehavior.utils的get_baseline和get_working_copy,但差异视图仍然不起作用(有一个不同的例外,在Products.Archetypes中有一万级深度,所以我假设它不太可能工作)。也许collective.dexteritydiff在这一点上会有所帮助。
这有点令人困惑,因为pastagingbehavior在其plone.app.iterate.checkout_info portlet的版本中包含了一个指向@@ iterate_diff的链接,这让我认为它打算工作,也许我的设置被破坏或者我做错了什么
答案 0 :(得分:0)
问题是由于plone.app.iterate.browser.diff.DiffView
尚未与敏捷兼容。 diff-view调用context.getReferences
,它会在灵巧对象上引发AttributeError。由于这种情况发生在__init__
方法中,因此会吞噬回溯。它应该使用__call__
和代码来获取plone.app.stagingbehavior.utils
之类的引用。