如何从控制台脚本访问plone 6站点?

问题描述 投票:0回答:1

在我的 plone 插件的 setup.py 中,我定义了一个控制台脚本

do_something
:

    entry_points="""
      ...
      [console_scripts]
      do_something = my.addon.scripts.do_something
      ...

现在,在我的脚本中我想访问克隆站点。我怎样才能在 Plone 6 中做到这一点?

我需要类似于我们在 Plone 4 中使用的 get_plone_site 的东西。

plone plone-6
1个回答
0
投票

这里由erral回答。我复制了他的答案:

控制台脚本在构建中创建脚本,但它们无权访问 zope 实例本身。它们独立于 Zope 进程运行,因此如果您需要与 Plone 站点交互,您应该使用 REST API。

相反,您可以在 setup.py 中定义 [zopectl.command] 部分,这将创建额外的 bin/instance XXXX 命令,这些命令将可以通过 app.Plone 变量访问 Zope 数据库。

这是一些演示代码:

设置.py

   [zopectl.command]
   reindex_catalog_indexes = addon.scripts.reindex_catalog_indexes:main

addon.scripts.reindex_catalog_indexes.py

from plone import api
from zope.component.hooks import setSite
import transaction

def main(app, *args):
    setSite(app.Plone)
    # ...
    transaction.commit()
© www.soinside.com 2019 - 2024. All rights reserved.