跳转到主要内容

一组适用于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

此验证器检查字段中包含的值(“期望值”),但仅当另一个字段包含“警告值”时。这意味着当观察字段不匹配您要监视的值时,不会进行验证;当这是真的时,对当前字段的第二级验证将进行。

您需要配置此验证器以提供观察字段。之后,您需要提供warnValuewantedValue

示例

检查当观察字段包含“其他…”值时,此字段包含“Foo”值。

第一个示例似乎并不很有用,但要知道这两个配置参数可以是特定值,也可以是布尔值。

当使用布尔值时

  • warnValueFalse时,表示您想要监视观察字段为空的情况。

  • warnValueTrue时,表示您想要监视观察字段不为空的情况。

  • wantedValueFalse时,表示如果字段为空,则验证通过。

  • wantedValueTrue时,表示如果字段不为空(见下文),则验证通过。

另一个(更好的)示例

检查当观察字段包含“其他…”值时,此字段包含某些内容

如何使用

上面的第一个示例

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倡议

作者

此产品是由RedTurtle技术团队开发的。

RedTurtle Technology Site

变更日志

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)

  • 初始发布

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分发

collective.itvalidators-1.0.0.zip (30.0 kB 查看散列)

上传时间