gpt4 book ai didi

Plone 3.3 -> 4 迁移 : setup_tool. setImportContext() 缺失

转载 作者:行者123 更新时间:2023-12-04 05:49:16 26 4
gpt4 key购买 nike

我正在将一些旧产品更新到 4.x 代码库。

这是旧的 Install.py 中的常见模式:

def install(self):
out=StringIO()

# Install CSS, JS and other GenericProfile stuff
setup_tool = getToolByName(self, 'portal_setup')
original_context = setup_tool.getImportContextID()
setup_tool.setImportContext('profile-Products.NoneMultiSelectionWidget:default')
setup_tool.runAllImportSteps()

但是, setup_tool.setImportContext() 方法不再存在。什么是正确的替换代码?我需要替换代码还是自动获取 GenericSetup XML 文件?

回溯:
  - __traceback_info__: ('Products.NoneMultiSelectionWidget',)
File "/Users/moo/code/buildout-cache/eggs/Products.ExternalMethod-2.13.0-py2.6.egg/Products/ExternalMethod/ExternalMethod.py", line 234, in __call__
return f(*args, **kw)
- __traceback_info__: ((<PloneSite at /plone>,), {}, None)
File "/Users/moo/code/x/src/x/Products.NoneMultiSelectionWidget/Products/NoneMultiSelectionWidget/Extensions/Install.py", line 19, in install
setup_tool.setImportContext('profile-Products.NoneMultiSelectionWidget:default')
AttributeError: setImportContext

最佳答案

我认为 setImportContext 在 Plone 3 中已经被弃用了,但我不确定。无论如何,不​​应再显式设置导入上下文,而不是这样:

setup_tool = getToolByName(self, 'portal_setup')
original_context = setup_tool.getImportContextID()
setup_tool.setImportContext('profilename')
setup_tool.runAllImportSteps()
# ... restore original context ...

现在只是这样:
setup_tool = getToolByName(self, 'portal_setup')
setup_tool.runAllImportStepsFromProfile('profilename')

此外,只要您的包只有一个 GS 配置文件,您就根本不需要这个 Extensions/install.py 代码,因为该配置文件会被自动提取。

关于Plone 3.3 -> 4 迁移 : setup_tool. setImportContext() 缺失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10281354/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com