跳转到主要内容

Zope 4的表单库

项目描述

表单生成器

表单生成器是一个帮助创建和验证Web表单的工具。表单字段以对象形式存储在Zope 4的专用表单文件夹中。

特性

  • 通过Zope管理界面管理表单字段。

  • 管理字段的视觉风格、验证和处理行为。

  • 自动字段验证。

  • 确定字段顺序并将字段分组。

  • 通过新的字段类型轻松扩展。

  • 在线帮助。

  • 将表单序列化为XML以及反向操作。

依赖项

您需要安装zeam.form。安装此产品的最佳方法是使用buildout,并让它解决依赖项。

代码仓库

您可以在Git中找到此扩展的代码:https://github.com/infrae/Products.Formulator

致谢

开发者

  • Martijn Faassen (faassen@vet.uu.nl) – 主要开发者,设计和实现。

  • Clemens Klein-Robbenhaar (robbenhaar at espresto.com) – 许多错误修复和功能添加。

许多感谢归于

  • Kit Blake (kitblake at v2.nl) – UI帮助和设计帮助。

  • Yury Don (yura at vpcit.ru) – 贡献了EmailField和FloatField,设计和实现帮助。

  • Stephan Richter (srichter at iuveno-net.de) – 贡献了LinkField和FileField。贡献了PatternChecker模块,用于PatternField。其他设计和实现帮助。

  • Nicola Larosa (nico at tekNico.net) – 反馈和错误修复。

  • Magnus Heino (magus.heino at rivermen.se) – 反馈和错误修复。

  • Joel Burton (jburton at scw.org) – 反馈和错误修复。

  • Ulrich Eck (ueck at net-labs.de) – 对TALES标签的大量帮助和耐心。

  • Dirk Datzert (Dirk.Datzert at rasselstein-hoesch.de) – 反馈和错误修复。

  • Max Petrich (petrich.max at kis-solution.de) – 反馈和错误修复。

  • Matt Behrens (matt.behrens at kohler.com) – 反馈和错误修复。

  • Nikolay Kim (fafhrd at datacom.kz) – XMLToForm/FormToXML的代码灵感。

  • Godefroid Chapelle (gotcha at swing.be) – 错误修复。

  • Alan Runyan (runyaga at runyaga.com) – 修复电子邮件正则表达式。

  • Sascha Welter (welter at network-ag.com) – 对电子邮件正则表达式的广泛帮助。

  • Christian Zagrodnick (cz at gocept.com) – 修复Unicode意识问题并添加XML输入表单。

  • Iutin Vyacheslav (iutin at whirix.com) – DateTime字段的am/pm功能。

  • Kapil Thangavelu (k_vertigo at objectrealms.net) – 启用“:record”渲染。

  • Pierre-Julien Grizel (grizel at ingeniweb.com) – ProductForm。

  • Sebastien Robin (seb at nexedi.com) – 在XML序列化中实现更一致的排序,错误修复

  • Guido Wesdorp (guido at infrae.com) – 在复合字段上添加了extra_item属性,错误修复。修复了XMLToForm中的Unicode错误。

  • Yura Petrov (ypetrov at naumen.ru) – 多项FSForm相关改进。

  • Vladimir Voznesensky (vovic at smtp.ru) – 启用/禁用字段,修复了render_view中的错误。

  • Jeff Kowalczyk – 对源代码进行空白字符规范化。

  • Paul Winkler, Dieter Maurer – 帮助修复问题,以便帮助系统不会在每次启动时引起ZODB写入。

  • Garito (garito at sistes.net) – 修复了DateTime值的XML序列化错误。

  • Maciej Pietrzak (magh at apcoh.org) – 修复了Zope 2.7中DateTime验证问题的修复。

  • Patrick Earl (pat at dril.com) – 修复了DateTime / CheckBox字段渲染的修复。

  • He Wei (hewei at ied.org.cn) – ZMI和Unicode相关修复。

  • Bertrand Croq (bertrand.croq at freeskop.com) – 修复了与字段标题和单选按钮标签相关的Unicode问题。

  • Ian Duggan (ian at swishmark.com) – DateTimeField功能中的“隐藏日期”。

  • Reinout van Rees (reinout at vanrees.org) – LabelField验证错误修复。

  • Mikael Barbero (mikael at emu-france.com) – ZMI增强。

  • Michael Howitz (mh at gocept.com) – 在GitHub Actions上运行测试。

特别感谢Rik Hoekstra。

还要感谢那些经历过ZFormulator(以前实现)的bug的勇敢灵魂。希望这次会更好!

变更

2.1 (2023-07-31)

  • 移植到Python 3,支持Python 3.7至3.11。

2.0.1 (2023-03-28)

错误修复

  • 修复包含“"”的值的HTML引号。

2.0 (2023-03-14)

向后不兼容的变更

  • 移除对Zope 2帮助系统的支持。

  • 停止测试Zope 2兼容性。本版本仍然应与Zope 2兼容,但测试基础设施已经现代化,改为使用plone.testing而不是infrae.testinginfrae.wsgi,以提高对未来版本的适应性。预计这将是有史以来最后一个针对Zope 2工作的版本。

特性

  • 支持Zope 4。

其他变更

  • 移除(测试)对five.grokinfrae.wsgiinfrae.testing的依赖。

1.16 (2022-06-16)

  • 在GitHub Actions中运行测试。

  • 修复弃用警告。

1.15.5 (2013/10/08)

  • 根据1.15系列修改后的更改,修复了各种Unicode问题。

1.15.4 (2013/08/26)

  • test_form现在将作为参数接受字段的无效标识符列表。如果其中一个标识符被字段使用,将返回错误。

  • 默认情况下,字段值内部现在会转义HTML实体。

  • 当可能时,Formulator小部件将返回Unicode。

  • zeam.form提取器已更新,以便与zeam.form小部件具有相同的Acquisition包装。

  • setup.py中正确定义了依赖项,以简化产品的安装。

1.15.3 (2013/05/23)

  • 修复了与zeam.form集成的Unicode问题。

  • 修复了与zeam.form接口的必需和只读属性。

  • 修复了ListTextAreaField,使其能够正确处理请求中的值。

1.15.2 (2013/03/05)

  • 修复了与最新版本zeam.form的兼容性问题。

1.15.1 (2012/12/12)

  • 在反序列化时不要对值进行验证。这使得无法反序列化格式良好但针对特定实例无效的值,从而丢失所有信息。

1.15 (2012/09/04)

  • 添加了对集成zeam.form的支持。

  • 添加了对验证器的支持,以验证已从请求中提取的值。

  • 当请求中存在ID为field.id_novalidate的值时,可以在从请求中提取值时禁用某些级别的验证。这对于从为旧版本表单设计的请求中提取表单值很有用。

1.14 (2011/11/10)

  • 对Zope 2.13和Python 2.7的兼容性修复。

  • DateTime小部件现在支持datetime值。

  • 在表单上添加了一个test_form方法,以了解它是否损坏(具有ZODB损坏字段或其他问题)。

  • 添加了一种方法来程序化地更改表单的所有字段选项。

  • 添加了对在内容对象上序列化和反序列化表单值的支持(请参阅适配器代码)。

  • 字段中的TAL表达式现在可以访问上下文值:表单的Acquisition父级。

  • 添加了一些以前在其他地方的字段,如EmailLinesField和InterfaceField。

  • 添加了对XML导入/导出中接口的支持,用于接口字段。

  • FileSystemSite的支持是可选的。

1.13 (2010/07/15)

  • 对Zope 2.12和Python 2.6的兼容性修复。这些现在是要求。

从1.11分支迁移。

  • 修复了MultiListFields在Unicode模式下不显示请求中值的问题,因为请求传入的值在Field._get_default中未转换为Unicode。

  • "convert_unicode"辅助程序现在期望一个单独的参数“encoding”,而不是始终假设UTF-8编码。

从1.12分支迁移。

  • 现在大多数小工具会自动为渲染的小工具生成一个HTML的'id'属性。这个'id'属性可以通过页面模板中的'field/html_id'字段访问。如果'extra'参数中设置了id属性,则返回该属性的值,而不是自动生成的id。现在HTML的id和name属性在ZMI编辑屏幕的字段中可见。没有HTML_id的小工具包括:RadioWidget、MultiCheckBoxWidget、DateTimeWidget。这些小工具有一个“has_html_id”属性,模板可以使用该属性来确定是否在字段标题周围放置标签。

1.11.6 (2009/11/11)

  • 为DateTime Widget添加了使用弹出日历输入日期和时间的选项。

  • DateTime Widget的弹出默认时间为午夜。

  • DateTime Widget现在可以理解大小写为'AM'和'PM'的表示。

  • 修复了在最近的Zope(2.11)中需要请求才能使用字段对象的问题。

  • 修复了字段事件:包含字段的表单的副本和包含表单的文件夹已损坏。

  • 为FileFields添加了“required”验证器属性。

  • 为FileFields添加了一个验证器,用于检查值是否为StringType,这表明表单编码设置不正确。错误信息会告知用户表单编码应设置为multipart/form-data。

  • 现在在编辑选项卡上显示属性描述。这些描述已经存在,但从未在ZMI中公开。

1.11.5 (2008/30/09)

  • 将文档重新格式化为ReST格式以发布egg。

1.11.4

已修复错误

  • Zope i18n需要一个“en”目录,否则像firefox这样的浏览器将使用语言首选项列表中具有翻译的第一个语言,即使英语在首选项列表中排名更高。

  • 污染的字符串导致实例错误,将污染的字符串转换回字符串。

  • 对Selection Field Validators进行的小修复,如果项目值存储为unicode,则其'validate'函数将失败。

  • 更新了文件系统Formulator表单表示所需导入,如果已安装CMF。现在CMF 1.x(用于Plone 2.x)和CMF 2.x(用于Plone 3.x)都应正常工作。由“lcanacheu”提供的补丁。

  • 复选框字段和多选框字段项目现在周围带有标签。

1.11.3

已修复错误

  • 字段验证器的'validate'函数不接受需要unicode的字段上的unicode值作为输入。

  • Zope 2.10兼容性:“MessageIDFactory”已重命名为“MessageFactory”;同样,“MessageID”也是如此;允许此类的猴子也受到影响,因此需要更新所有导入此类的ZODB。由Yinghoong Chan和Josef Meile报告的问题。

  • Zope 2.10事件处理。Formulator现在使用Zope 3风格的事件处理,因此不再看到弃用警告。

  • 在Zope 2.10中,字段复制和粘贴不再工作,因为显然Zope现在要求在所有_meta_types返回的数据结构中包含权限信息。我们已经创建了一个新的权限“添加Formulator字段”,当您创建或复制粘贴Formulator字段时,将检查此权限。

    请注意,如果非管理员用户尝试添加Formulator字段,仍然存在一个“外观”安全问题。“添加和编辑”正常工作,但“添加”会给出登录对话框。实际上字段确实被添加,但系统尝试返回的URL不允许访问。

1.11.2

已修复错误

  • 从1.10分支复制修复,将非字符串传递给Validator时引发TypeError。

1.11.1

已修复错误

  • 关闭Zope 2.8.5启动时关于安全声明的警告。

1.11

新增功能

  • Formulator现在需要Zope 2.8.4 + Five 1.2。它使用Five的i18n架构而不是PlacelessTranslationService。Five 1.2可从http://codespeak.net/z3/five下载

    如果您由于某种原因不想安装Five 1.2,只需从Formulator包中删除'configure.zcml'。然后Formulator将在普通Zope 2.8安装中工作(但没有i18n支持)。

  • 单选按钮现在会在其字段值周围显示标签,允许用户点击值而不是单选按钮本身。(来自 Bertrand Croq 的补丁)。

已修复错误

  • 修复了 FormToXML 中的 Unicode 问题,当表单处于 Unicode 模式且消息字段包含非 ASCII 字符时,XML 序列化无法工作。

1.10

新增功能

  • 允许将 ZMI 表单的字段分组到比默认的“小部件”和“验证器”更多的组中(来自 Mikael Barbero 的补丁)。

已修复错误

  • 修复了 DummyMessageID 上的 AttributeError(在 __call__ 上)。

1.9.0

新增功能

  • 为 TALES 表达式添加了 'modules' 命名空间。

  • 在“顺序”选项卡中重新排序字段时,当前字段“粘性”以便更快地上下移动。(来自 Sebastien Robin 的补丁)

  • 向验证器类添加了 serializeValue 和 deserializeValue 方法。前者接受 sax 处理器作为参数并向其发送 sax 事件以序列化字段值,后者接受序列化值并将它们转换回有效的表单值。这些方法在表单本身内部不使用,也不引入任何新的依赖项。

  • DateTimeField 小部件的新标志允许隐藏日期,允许只指定月份和年份。在这种情况下,日期默认为该月的第一天。(来自 Ian Duggan 的补丁)

修复了错误

  • 修复了列表字段 render_view 没有默认值的问题。

  • 修复了在设置 Unicode 属性后,新创建的表单或字段的标题中包含非 ASCII 字符的问题(来自 Bertrand Croq 的补丁)

  • 直接在 LabelField 上调用“validate”失败,出现 KeyError: ‘external_validator’(来自 Reinout van Rees 的补丁)

  • 如果模式中有多个 'e' 或 'f' 以及字段值中的 'd'、'e' 或 'f',PatternField 可能会返回乱码结果。

1.8.0

新增功能

  • 从 Formulator 中移除了 i18n 前缀和消息 ID 生成策略。使用 ZPT 中的 i18n:translate 来做这个会更干净。可以从 .form XML 文件中提取消息(尽管此功能目前不是 Formulator 的一部分)。

  • 为 Formulator 生成的错误消息引入了消息 ID 标记和 .po 文件。这些可以在自己的页面模板中翻译,如下所示

    <p i18n:domain="formulator" i18n:translate=""
       tal:content="my_error_text"></p>
  • 测试框架现在使用(并要求)ZopeTestCase。这允许移除一些测试设置冗余。

修复了错误

  • 为“fieldAdd” DTML 文件添加了显式的安全声明。这解决了 Zope 2.7.3 中复制粘贴字段的问题。

  • 通过 ZMI 中的 XML 选项卡删除的字段仍会显示在“内容”选项卡中。

  • 为了方便起见,TALES 表达式现在可以返回“None”作为默认值,它被渲染为空字符串(以前它被渲染为“value”)。

1.7.0

新增功能

  • 添加了 FormulatorFormFile,它可以用来从文件系统代码(如 PageTemplateFile)加载表单的 XML 表示形式。

  • 为表单提供 i18n-id 和 i18n-domain 支持,包括描述、错误消息等。

修复了错误

  • 更改了选择字段检查其项目属性是否为列表或单个项的方式。

  • 使系统不再为已经具有帮助的 Field 重新注册帮助,以避免启动时的 ZODB 写入。

  • 修复了未正确关闭的单一提交按钮。

  • Zope 2.7 兼容性:在 Zope 2.7 中,尝试构建无效的 DateTime 对象的行为已从引发字符串异常更改为基于类的异常。这导致 DateTimeField 传递了新的异常而不是将它们转换为 ValidationError。

  • PatternFields 在帮助系统中不再被标记为“实验性”。

  • 在 XML 表示形式中错误地表示了 DateTime 值字段值(如开始或结束时间)为字符串。

  • 修复了类似于在 1.6.2 中修复的验证 ListField 的“单个元素列表与两个字符字符串”的渲染错误。

  • 修复了 DateTime 字段中的错误,其中“默认为现在”的设置覆盖了请求中的值。

  • 严重的拼写错误。

  • 修复了当复选框字段设置“默认”时,即使用户在重新显示已提交的表单时取消选中该复选框,它也会始终显示为选中状态的错误。实际上,只有在打开<form>标签是通过form.header()方法渲染的,或者如果手动在表单中包含隐藏字段“formulator_submission”时,它才会正常工作。

  • 为LinesValidator添加了测试。

  • 修复了与render_from_request LinesField相关的错误,该错误将来自请求的原始未验证数据中的字符串拆分为多行,每行只有一个字符。

  • 修复了在unicode模式下处理ListField项目中的非ascii值时未得到适当处理的错误。

  • 解决了与Zope2.7/python2.3兼容性的错误。如果在字符串字段中插入类似“<”的字符,当将该值输入到验证时的string.strip()函数时,会触发一个隐晦的Zope错误。

1.6.2

修复了错误

  • 修复了导致当使用字符串列表作为<items>的值时,其中一个元素长度为2个字符,导致验证列表字段抛出异常的错误。

  • Formulator现在应在Zope 2.7中正常工作;Zope 2.7对其检索用于显示ZMI的字符集的方式进行了更改。这严重影响了Formulator最近对unicode的支持的更改。

  • 添加了“refresh.txt”。如果这对你不起作用,我并不认为这是一个错误——我没有使用它。 :)

  • 方法值的属性XML表示不工作。

  • python 2.1.3兼容性:在XML序列化/反序列化过程中,将布尔值如“required”转换为int。

    最后两个修复归功于Sebastien Robin。

  • DateTimeField的render_hidden和允许多选的字段没有导致验证有用的结果。

  • RadioField和ListField在render_view中显示的是文本而不是值。

其他

  • 源代码中的空白字符归一化。

1.6.1

修复了错误

  • 向空组添加字段是不可能的。

  • 空表单的ZMI“顺序”选项卡会引发异常。

1.6.0

新增功能

  • FileSystemSite/DirectoryView改进

    • Formulator表单的XML文件系统表示现在也可以与CMF一起使用(如果未安装FileSystemSite)。

    • 如果安装了CMF或FileSystemSite,FSForm将自动注册到目录视图系统中。

  • 为验证器提供基础设施,以便在验证过程中不被考虑(need_validate)。

  • 添加了一个新的标签字段。它不参与验证。它将文本作为标签显示在表单中。

  • Unicode模式。现在可以将表单置于“unicode模式”,这意味着它将所有文本数据存储为unicode字符串。这允许更容易地与使用unicode作为内部系统的Zope系统集成,如Silva。

  • 禁用字段。现在可以通过取消选中“启用”验证器属性来禁用字段显示或验证。这也可以通过TALES覆盖动态完成。

修复了错误

  • DateTime字段的css_class值曾被忽略。现在它被正确传递给其子字段,因此所有子字段元素都使用给定的css_class值渲染。

1.5.0

新增功能

  • 添加了ProductForm,它为Formulator.BasicForm提供包装,允许在产品内部创建它但在产品外部使用它。

  • 允许关闭XML前导部分。

  • 通过缓存编译表达式优化TALESMethod。这大大加快了SilvaMetadata索引的速度,尤其是在使用默认值回退的情况下,特别是对于Python表达式,因为它避免了大量的编译开销。

  • 为列表/多选框/单选按钮字段定义了额外的属性名为“extra_item”,这允许为单个列表项/复选框/单选按钮设置HTML属性。

修复了错误

  • 现在XML序列化应更一致;在序列化时按名称对字段属性进行排序。

  • 允许BasicForm导出XML。

1.4.2

修复了错误

  • 粘性表单现在在存在Unicode的情况下可以正确工作。如果从REQUEST表单中提取信息,则编码数据会自动转换为Unicode。

1.4.1

修复了错误

  • 当启用< span class="docutils literal">allow_empty_time时,无法使DateTime字段成为非必填项。已修复。

1.4.0

新增功能

  • 增加了对输出选定字段的Unicode的有限支持。仅在Zope 2.6.x中正常工作,这些表单所在的HTML页面需要设置输出编码(例如UTF-8,这是Formulator的默认编码)。如果选中“Unicode”复选框,Formulator将尝试使用表单的编码(默认为UTF-8)来解释其输入。它还将尝试以该编码显示其值。请注意,目前只有字段值和项目使用Unicode – 字段的其余文本属性仍然以8位存储。但是,如果您确保这些属性以UTF-8(或您为表单选择的任何编码)编码,那么事情应该没问题。

  • 现在也可以使用XML更改表单(而不仅仅是查看它)。

  • DateTime字段现在可以可选地输入AM/PM。

  • DateTime字段现在可以可选地设置为允许时间留空。

  • 字符串类型字段上的“whitespace_preserve”选项。如果打开,空白字符不会被自动删除,并计为输入。

  • 字段上的“render_view”方法,用于在控件外渲染值。

  • 增加了SilvaMetadata使用的某些代码支持,以启用使用Zope的“:record”语法的字段渲染。

修复了错误

  • 修复了< span class="docutils literal">XMLObjects.py中的Python2.2兼容性错误。

  • 如果需要,DateTimeField现在可以正确地从REQUEST中获取默认值。

  • LinkField的XML表示形式的“check_timeout”值破坏了type =“float”属性。

  • 增加了额外的单元测试。

1.3.1 (2002/12/20)

新增功能

  • 现在可以在XML序列化中包含错误消息。

  • 可以在值中将列表编码为特殊类型。

修复了错误

  • 一些更合适的编码。

  • 处理没有字段的情况。

  • 更好地处理DateTime字段。

1.3.0 (2002/11/26)

新增功能

  • FormToXML和XMLToForm模块有函数可以将(大多数)表单序列化为XML,然后再将其读入(覆盖现有表单)。

  • 为表单添加了新的XML选项卡,显示XML序列化(目前还没有保存选项)。

  • FSForm.py使用XML序列化来为FileSystemSite提供formulator表单版本。默认情况下不会导入。

修复了错误

  • 电子邮件验证器有了改进的正则表达式。

  • 修复了尝试将DateTimeField渲染为隐藏时发生的错误。

1.2.0 (2002/03/06)

新增功能

  • 更改了异常基础设施,现在可以通过Web Python脚本来导入和捕获错误。示例

    from Products.Formulator.Errors import ValidationError, FormValidationError
  • 将< span class="docutils literal">__getitem__添加到Field中,因此您可以使用Python中的此方法而不是< span class="docutils literal">get_value():form.field[‘title’],在ZPT中,您可以在路径表达式中使用此方法:form/field/title

  • 开始进行Formulator单元测试;一些验证器现在会自动进行测试。

修复了错误

  • 删除了“添加和编辑”按钮名称的依赖关系,以便简化管理界面的国际化。

  • 添加了权限,使ZClasses运行得更好(但是我认为它们仍然与Formulator配合得不好。我不使用ZClasses,因此我希望从ZClass用户那里听到这个)

  • 表单的属性选项卡现在可见,并且表单选项卡不再表现不佳。

  • 列表等应该更好地处理具有相同值的多个项目,仅选择一个。

  • LinkField现在更好地检查站点内部链接。

1.1.0 (2001/10/26)

修复了错误

  • 修复了表单设置选项卡中的错误。

  • LinkField现在更好地检查站点内部链接。

1.0.9 (2001/10/05)

新增功能

  • 为字段添加了新的TALES选项卡,作为更强大的覆盖选项卡;需要安装PageTemplates才能使其工作。

  • 为表单添加了“name”属性。当表单标题渲染时,name将成为一个属性。这可以使用JavaScript来控制表单。

修复了错误

  • 更多符合Zope产品指南;将dtml文件从www目录移动到dtml目录。

  • 修复了表单标题无法工作的问题。现在表单有标题,您可以在设置选项卡中更改它们。(尽管Formulator内部不使用标题属性)

1.0.1 (2001/07/27)

修复了错误

  • 修复了重命名组时的bug。之前,重命名的组在ZODB中存储不正确。

  • 使MultiSelectionValidator(由MultiListField等使用)更好地处理整数值。

  • 在Zope 2.4.0的CopySupport更改上进行了修改;现在重命名功能又恢复了。

1.0 (2001/07/10)

新增功能

  • 新字段:RawTextAreaField。一个不进行太多文本输入处理的文本区域字段。

  • 已提交BSD许可文本。

修复了错误

  • 修复了DateTimeField处理年份时的一个微小bug。

  • 现在隐藏字段也使用“extra”属性的文本。

  • 修复了MultiItemsWidget中的bug;不会处理只选择单个项目的情况。

0.9.5 (2001/06/27)

新增功能

  • 添加了带有浏览按钮的FileField。如果表单设置为multipart/form-data,则可以用于上传文件。

  • 添加了用于URLs的LinkField。

  • 使ListField和RadioField能够更好地处理整数(和可能的其他)值,而不仅仅是字符串。

  • 使ListField和RadioField能够愉快地处理项目列表中的非元组。在这种情况下,项目文本和值将相同。

  • 重构了ListWidget和RadioWidget,以便它们共享代码;现在它们都继承自SingleItemsWidget。

  • 添加了LinesField,可以在文本区域中提交一系列行。

  • 添加了MultiListField和MultiCheckBoxField,它们都使用新的MultiItemsWidget和MultiSelectionValidator。

  • 添加了实验性PatternField。

0.9.4 (2001/06/20)

新增功能

  • 为Form、BasicForm和ZMIForm添加了API文档。

  • 将具有混淆性名称的PythonForm和PythonField重命名为ZMIForm和ZMIField,因为它们是从Zope管理接口而不是从Python使用的。

  • 为表单添加了render()方法,用于基本表单渲染。

  • 添加了Formulator HOWTO文档。

修复了错误

  • 删除了一些不再使用的验证代码(items_method)。

  • 删除了Form中的“has_field_id”,因为这与“has_field”的功能重复。

  • 将Python源中的<br>改为<br />以符合XHTML规范。

  • 调整了单选按钮;文本现在更靠近按钮本身,不同的按钮间距更远。

0.9.3 (2001/06/12)

新增功能

  • 添加了用于简单显示单选按钮的RadioField。

  • 将action、method和enctype属性添加到表单设置中。这些属性使用特殊的form.header()和form.footer()方法显示。

  • 添加了覆盖选项卡,允许通过方法调用覆盖所有属性。ListField中的“items_method”已删除。

  • 添加了使用下拉列表而不是文本输入来显示DateTimeFields的能力。为DateTimeField添加了一些其他功能。更改了复合字段的内部工作方式;组件字段现在是每个字段实例的独特值,而不是在它们之间共享。

  • 在字段上添加了is_required()实用方法,用于检查字段是否为必填项。

  • 一些内部功能,例如,在属性更改时立即调用方法的能力。

修复了错误

  • 修复了安全断言中的拼写错误。

  • 尽可能使用REQUEST.form而不是REQUEST。

  • 在DateTimeField中显示月份和日期时,使用初始零。

  • 修复了validate_all_to_request()中的bug;现在如果可能,将被验证的内容将添加到REQUEST中,即使引发了FormValidationError。

0.9.2 (2001/05/23)

新增功能

  • 可以重命名组,包括第一个“默认”组。

  • 提高了对粘性表单的支持;form.render()现在可以接受一个可选的第二个参数REQUEST,它可以从先前表单的提交中获取。即使是未验证的字段也将保持粘性。

  • 字段可以调用额外的可选外部验证函数(如Python脚本)。

  • 新增替代名称属性:经过验证后,替代名称将添加到结果字典或REQUEST对象中。这可以用来支持某些地区可能不合法的字段名称。

  • 新增额外属性;可以用来向HTML标签添加额外属性。

  • 一些IntegerField属性现在可以在不需要值时留空,而无需将它们设置为0。

  • 将RangedIntegerField的功能合并到IntegerField中。RangedIntegerField不再可添加,但作为IntegerField的克隆支持向后兼容。在新的IntegerField中留空“start”和“end”将意味着不会执行这些检查。

修复了错误

  • 添加了更多缺失的安全声明。

  • 在多个地方添加了html_quote,以确保字段以正确的方式显示各种HTML实体。

0.9.1 (2001/05/13)

新增功能

  • 小部件现在有“隐藏”属性。如果设置,则小部件将绘制为“隐藏”字段。“隐藏”字段仍然会进行正常验证。

  • 略微更改了Widget和Validator的API;render()和validate()方法现在接受一个额外的“key”参数,表示字段在表单中的名称。这是处理复合字段的子字段所必需的。

  • 添加了EmailField和FloatField。

  • 添加了一些基础设施以支持“复合字段”,即由多个子字段组成的字段。

  • 添加了DateTimeField,这是复合字段的第一个例子(由其他字段组成的字段)。

修复了错误

  • 进行了一般的代码清理;删除了一些未使用的方法。

  • 修复了validate_all_to_request()方法的安全断言。

  • MethodFields现在检查它们是否有“查看”权限来执行列出的Python脚本或DTML方法。

  • RangedInteger现在为< end,而不是<=,与文档兼容。

0.9 (2001/04/30)

  • Formulator的首次公开发布。

支持者