我正在尝试通过动态填充选择字段来自定义ploneformgen表单。我需要解析文件系统上的文件,并根据日期和时间选择某些选项。创建python脚本并不是很明智,但是我在哪里放置脚本?
实现表单自定义的最佳选择是什么?
答案 0 :(得分:3)
如果你使用了皮肤脚本,那么是的,那也是作为受限制的python运行的。它是文件系统存储的ZMI python脚本的等价物。
最佳做法是使用browser view;它只是一个可调用的对象,它有一个与之关联的请求和上下文:
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。
但是,如果这是您创建自定义包的唯一方法,那么请务必使用外部方法。