一组适用于Plone的Archetypes验证器,其中一些适用于意大利特定需求,其他则对所有人都有用
项目描述
简介
此产品向Plone添加了一些额外的验证器。
其中一些主题可能只对意大利用户或针对意大利的网站有用(例如默认的isSSN或isUSPhoneNumber等,对于非美国网站来说并不实用),其他则是一些简单的附加验证器,对每个人来说都可能很有用。
产品的理念很简单,就是收集一组通常被放在其他产品内部但不易重用的验证器。
意大利特定验证器
isCAP
非常类似于本地的isZipCode,但只接受5位数字的值。形式上是Codice di Avviamento Postale。
isItalianNIN
检查一个字符串是否是有效的意大利国民保险号(“Codice Fiscale”)。验证器只检查字符串的格式,而不检查字符串本身是否是一个真实且存在的代码。
通用验证器
MinCharsValidator
此验证器检查给定的值是否至少有特定数量的字符长。默认字符值是500。
验证器还将忽略任何空白(空格字符、换行符、制表符等),因此文本
Hello World
像这样很长
Hello World
也这样长
Hello World
如何使用
示例
from collective.itvalidators.validators import MinCharsValidator ... TextField('text', validators = (MinCharsValidator()), ), ...
要自定义字符数
TextField('text', validators = (MinCharsValidator(100)), ), ...
您还可以将其视为特殊的HTML文本(例如,如果它来自TinyMCE),确保只计算内容字符(不是HTML标签)。示例
... TextField('text', default_output_type = 'text/x-html-safe', validators = ('isTidyHtmlWithCleanup', MinCharsValidator(100, strict=True)), ), ...
DependencyCheckValidator
此验证器检查字段中包含的值(“期望值”),但仅当另一个字段包含“警告值”时。这意味着当观察字段不匹配您要监视的值时,不会进行验证;当这是真的时,对当前字段的第二级验证将进行。
您需要配置此验证器以提供观察字段。之后,您需要提供warnValue和wantedValue。
示例
检查当观察字段包含“其他…”值时,此字段包含“Foo”值。
第一个示例似乎并不很有用,但要知道这两个配置参数可以是特定值,也可以是布尔值。
当使用布尔值时
当warnValue为False时,表示您想要监视观察字段为空的情况。
当warnValue为True时,表示您想要监视观察字段不为空的情况。
当wantedValue为False时,表示如果字段为空,则验证通过。
当wantedValue为True时,表示如果字段不为空(见下文),则验证通过。
另一个(更好的)示例
检查当观察字段包含“其他…”值时,此字段包含某些内容。
如何使用
上面的第一个示例
from collective.itvalidators.validators import DependencyCheckValidator ... StringField('field1',), StringField('field2', validators = (DependencyCheckValidator('field1', warnValue='Other...', wantedValue='Foo')), ), ...
上面的第二个示例
... StringField('field1',), StringField('field2', validators = (DependencyCheckValidator('field1', warnValue='Other...', wantedValue=True)), ), ...
结束语
通常,Archetypes框架不会对非必填空字段执行验证。这是通过添加一个默认的足够“isEmptyNoError”验证器来实现的。
您可能需要与Products.validation API一起使用以使用wantedValue True
YourSchema['field2'].validators.insertRequired( DependencyCheckValidator('field1', warnValue='Other...', wantedValue=True) )
这将添加一个必需的验证器。这样,验证就正常运行了。
贡献力量!
欢迎您向此产品添加额外的验证(也欢迎为每个新验证器提供一些单元测试)!请联系我们sviluppoplone@redturtle.it
您还可以通过提供新的验证消息翻译来做出贡献。
鸣谢
由以下机构支持开发
他们都支持PloneGov倡议。
变更日志
1.0.0 (2012-11-12)
fix interfaces implements method for Plone 4 [fdelia]
Plone 4.2 的固定测试 [keul]
0.3.0 (2012-05-02)
添加了对使用 wantedValue 的 DataGridField 空值的特定支持。请注意,这已经在 DataGridField 1.6 [keul] 上进行了测试。
0.2.1 (2012-02-09)
修复了当字段提供自定义 i18n 消息字符串时的错误。覆盖默认的不可行 [keul]
0.2.0 (2012-02-07)
新验证器: DependencyCheckValidator [keul]
修复了翻译 [keul]
0.1.0 (2011-05-03)
初始发布