我目前正在为 plone 网站添加一些功能,我希望能够使用内容规则运行 python 脚本。例如,我写了一篇文章,我想发表它:使用条件触发的规则我想运行与对象无关的特定脚本。
我已经安装了Runscript但问题是显然脚本必须与触发操作的对象相关。
我有一个简单的脚本,它只打开一个文本文件并在其中写入“Hello World”:
with open("hello.txt", "w") as fichier:
fichier.write("Hello world")
plone 在我的脚本中出现以下错误(在 plone 之外工作):
Module script, line 1, in hello<br/>
<FSPythonScript at /Plone2/hello used for /Plone2/news/azertyazert> Line 1<br/>
NameError: global name 'open' is not defined
在其他脚本上我也得到页面我没有足够的权限来更改文章的状态(因此触发条件规则)。
无论如何,那是关于 Runscript 的,有没有人知道另一种在触发规则时执行脚本的方法,或者如何使 runscript 成为任何脚本?
最佳答案
Zope/Plone 中的 Python 脚本在受限 环境中运行。抛出错误是因为您无法从那里的文件系统打开文件。
使用 External Method如果您想执行不受限制的 Python 代码,则改为指向文件系统存储的脚本。
runscript
操作仅使用object
作为上下文。您的脚本可以随意忽略该上下文。
关于python - 使用条件规则执行随机 python 脚本 Zope/Plone,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15727459/