Ploneformgen和正则表达式

时间:2013-02-05 05:46:19

标签: plone ploneformgen

我想在使用ploneformgen 1.7创建的表单中使用正则表达式。我正在使用plone 4.1。在文本字段的自定义验证中。

如何使用正则表达式?

我尝试了以下内容:

python: import re; test(value==re.search(r'[123]'), False, 'Needs to be number 1 or 2 or 3')

但它给了我错误,因此无法验证。 我希望值应该是1或2或3.我能够将表达式用作

python: test(value=='1' or value=='2' or value=='3', False, 'Needs to be number 1 or 2 or 3')

但我想使用正则表达式。请指导。

3 个答案:

答案 0 :(得分:4)

您可以在通过Web脚本,TALES“python:”表达式,PFG覆盖和PFG脚本适配器中使用的包和类型集仅限于Restricted Python中提供的那些。受限制的Python故意非常保守,它提供了哪些模块和类型。

您可以使用包含在egg列表中的Python包中的显式“allow”声明来扩展列表。这样一个包的样本是available in the github collective,包括我发现在PloneFormGen中特别有用的几个模块和类型,包括re。

您仍然无法在TALES表达式中“导入re”,但您可以在TTW脚本中使用re,它可以用作PFG验证器。

答案 1 :(得分:3)

Per http://docs.zope.org/zope2/zope2book/ScriptingZope.html,您不能在TALES中使用正则表达式,因为受限制的Python禁止它们。

答案 2 :(得分:-1)

搜索方法实际上需要2个参数。

您应该使用这种方式:import re; test(re.search(r'[123]', value), False, 'Needs to be number 1 or 2 or 3')