製品自体がまだインストールされていない場合にのみ、インポート ステップでコードの一部を実行したいと考えています。
私はquickinstaller-toolの「listInstalledProduct's-method」で試しました。
ただし、これにより、インストールされているすべての製品が返されますが、自分自身のものは返されません。
製品がサイトに既にインストールされているかどうかを確認するにはどうすればよいですか?
製品自体がまだインストールされていない場合にのみ、インポート ステップでコードの一部を実行したいと考えています。
私はquickinstaller-toolの「listInstalledProduct's-method」で試しました。
ただし、これにより、インストールされているすべての製品が返されますが、自分自身のものは返されません。
製品がサイトに既にインストールされているかどうかを確認するにはどうすればよいですか?
Anne Walther (別名 'awello') の適切なヒントで、解決策を見つけることができました。
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...
なんらかの理由で、幸いなことに、再インストール中の製品のステータスは「アンインストール済み」を返し、まだインストールされていない製品は「新規」ステータスで返され、最後に、サイトの既にインストール済みの製品は大声で誇らしげに「インストール済み」と叫びます。 .
このようにして、再インストールと初期インストールを区別することができます。