1

我正在尝试通过动态填充选择字段来自定义 ploneformgen 表单。我需要解析文件系统上的文件并根据日期和时间选择某些选项。创建 python 脚本很简单,但是我在哪里放置脚本呢?

  1. 据我了解,外部方法不是 plone 4 中的首选
  2. 我试图通过 ZMI 添加一个 python 脚本,但后来我被受限 python 击中,我的脚本无法执行。
  3. 我开发了一个插件并将其放在eggs文件夹中,然后编写了一个python脚本来调用插件中的代码,但不幸的是,我再次遇到与以前相同的错误“您没有足够的权限查看这个页”。据我了解,插件内的代码不受限制,或者?

实现表单定制的最佳选择是什么?

4

1 回答 1

3

如果您使用了皮肤脚本,那么是的,它也作为受限 python 运行。它是 ZMI python 脚本的文件系统存储等价物。

最佳做法是使用浏览器视图;它只是一个可调用的对象,具有与之关联的请求和上下文:

from zope.publisher.browser import BrowserView

class MyBrowserView(BrowserView):
    def __call__(self):
        request = self.request
        context = self.context
        # Do something with the request and context

在您的 configure.zcml 中注册:

<browser:view
    for="*"
    name="mybrowserview"
    class=".views.MyBrowserView"
    permission="zope2.Public"
    />

之后它将可someobject/@@mybrowserview用于 PloneFormGen。

但是,如果这是您为其创建自定义包的唯一内容,那么请务必使用外部方法。

于 2012-05-30T07:59:11.200 回答