我想在导入步骤中执行部分代码,前提是产品本身尚未安装。
我尝试使用快速安装工具的“listInstalledProduct”方法。
但是,这将返回所有已安装的产品,但不会返回我自己的产品。
如何检查我的产品是否已安装在网站中?
在 Anne Walther(又名“再见”)的正确提示下,我可以找到解决方案:
from Products.CMFCore.utils import getToolByName
def myMethod(context):
qi = getToolByName(context, 'portal_quickinstaller')
prods = qi.listInstallableProducts(skipInstalled=False)
for prod in prods:
if (prod['id'] == 'your.productname') and (prod['status'] == 'new'):
# further code...
无论出于何种原因,幸运的是,重新安装期间产品的状态将返回“已卸载”,尚未安装的产品将返回“新”状态,最后已安装的网站产品会自豪地大声喊出:“已安装” 。
这样就可以区分重新安装和初始安装。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)