跳转到主要内容

zeam.form的支持Zope工具包

项目描述

zeam.form.ztk 帮助您将 zeam.form.base 与 Zope 工具包集成。它提供

  • 从 zope.schema 字段生成表单字段,以及列在 Zope 接口中的 zope.schema 字段

  • 这些字段的小部件

  • 默认操作为添加、编辑内容,通过返回内容默认视图来取消当前操作。

zeam.form.base 一样,重点是提供一个开发者可用的API,而不是支持您不需要的理论用例。

示例

让我们创建一个表单来编辑内容。这里有一个我们内容的界面

from zope import schema, interface

class IClan(interface.Interface):
   pass

class IPerson(interface.Interface):

   first_name = schema.TextLine(title=u"First Name")
   last_name = schema.TextLine(title=u"Last Name")
   age = schema.Int(title=u"Age", required=False)
   single = schema.Bool(title=u"Is single ?", default=True)

我们假设一个Person属于一个Clan。我们可以实现一个Person

from persistence import Persistent

class Person(Persistent):
    interface.implements(IPerson)

    first_name = None
    last_name = None
    age = None
    single = True

添加表单

你可以这样在部落中添加一个新的Person

import zeam.form.ztk as form

class Add(form.Form):

    form.context(IClan)

    label = u"New person"
    fields = form.Fields(IPerson)
    actions =  form.Actions(
         form.AddAction("Add", factory=Person),
         form.CancelAction("Cancel"))
    actions['add'].fieldName = 'last_name'

编辑表单

你可以这样编辑一个Person

class Edit(form.Form):

    form.context(IPerson)

    label = u"Change person details"
    fields = form.Fields(IPerson)
    actions =  form.Actions(
         form.EditAction("Update"),
         form.CancelAction("Cancel"))

    ignoreContent = False

API

zeam.form.base 的所有API都已导出。

操作

添加操作

一个额外的参数工厂用于创建存储在内容对象上的对象的操作。创建的对象通过 INameChooser 添加以获取其标识符。将使用 fieldName 选项在表单数据中查找值,并将其作为潜在标识符提供给 INameChooser。之后,使用表单数据编辑创建的对象(类似于 EditAction 所做的)。

编辑操作

在表单提交验证后,使用表单数据更改指定表单字段的内容对象上的值的操作。

取消操作

简单的操作,在未验证表单提交的情况下返回内容的默认视图。

字段

当前支持的字段

  • 日期,日期时间:生成一个文本行输入,并使用区域设置解析/显示日期,

  • 文本行,文本,布尔值,URI,电子邮件和数字(Int,Float ...),

  • 密码,

  • 选择:生成一个选择或单选按钮(小部件模式 radio),

  • 对象,

  • 集合:输入和显示模式下的列表,集合,元组

    • 选择集的集合:生成一个带有复选框列表的小部件,

    • 对象的集合:生成一个用于编辑多个对象的表格,

    • 其他集合:生成一个带有通用添加和删除操作的小部件。

有关更多文档,请参阅代码中包含的doctests。

变更日志

1.4.0 (2020/08/20)

  • 迁移到Python3.6+。已删除Python2支持。

1.3.6 (2018/01/15)

  • 修复了使用defaultFactory的问题

  • 更新到GTK包的新版本

1.3.5 (2016/03/08)

  • 扩展Mock Library类以使其与最新的fanstatic api兼容。

1.3.4 (2014/04/15)

  • 引入了来自 zope.schema 的“defaultFactory”属性。这是从zope.schema DefaultProperty计算默认值所必需的。

1.3.3 (2013/12/20)

  • 更新集合javascript不再绑定到文档,而是绑定到字段。这防止了事件被拦截时的中断。重新排序按钮不再提交表单,即使没有包含javascript。

  • 允许用户自定义字段上的 disabled 属性。

  • 更新集合javascript以与jQuery 1.9一起工作。现在至少需要jQuery 1.7。

1.3.2 (2013/04/23)

  • 添加了一个原生的电子邮件小部件。

1.3.1 (2012/11/19)

  • 更新字段以正确传递 zope.schemacontrainValue 验证器。

  • 修复所有字段以正确处理必需的(在前一个版本中由于某些字段而损坏)。

1.3 (2012/10/12)

  • 更新字段和小部件不再代理 zope.schema。相反,它们执行自己的验证并独立(可以在没有 zope.schema 的情况下创建和使用)。

  • 支持更多的HTML 5功能,例如对于数字字段,以及可以使用 htmlAttributes 插入的额外属性,如 placeholder

  • 添加了一个 CurrencyField,可以用来很好地显示货币。

1.2.3 (2012/09/24)

  • 更新API以使用 zeam.form.base 1.2.3。

1.2.2 (2012/07/25)

  • 调整 CheckboxWidgetExtractor 以将 False 输入转换为 bool False

1.2.1 (2012/04/27)

  • 改进选择小部件,使其能够自定义其源。添加对 IFormSourceBinder 的支持,它类似于 IContextSourceBinder,但将表单作为参数而不是上下文(因此还可以访问请求等)。

  • 向数据管理器添加了一个 delete 方法。

  • 现在使用 grokcore.chameleon 而不是 megrok.chameleon

1.2 (2011/11/08)

  • 改进了收集小部件的错误报告。感谢Novareto提供赞助。

  • 在收集小部件中添加和删除值时,添加了验证选项。感谢Novareto提供赞助。

  • 改进了收集小部件的JavaScript。添加了额外的fanstatic以自动要求所需的文件。

  • 如果需要收集小部件,当它为空时,它将默认在集合中显示一个空项目。这防止了额外点击来添加它。

  • InvariantsValidator中进行了各种修复。

  • SchemaWidgetExtractorSchemaField现在可以捕获无效异常。

  • 在所有模板中添加了对HTML 5属性required的支持。在表单标签上使用属性novalidate来禁用它。

  • 为对象和uri字段添加了显示小部件。

  • valueLength选项添加到日期小部件中。可以使用任何Zope格式器大小(shortmedium等)。

1.0 (2010/10/19)

  • 为多选添加了multiselect小部件。

  • 添加了readonly小部件。

  • 为布尔值和集合添加了display小部件。

  • 为URI添加了HTML5小部件。

  • 现在即使没有接口(如果它们提供属性__name__),也可以对Schema字段进行适配。

  • 添加了更多测试,修复了收集小部件和不变量验证器中的问题。

  • 所有翻译都位于zeam.form.base中。

  • 更新到使用zeam.form.base的最新版本。

1.0rc2 (2010/07/16)

  • 为选择添加了radio小部件。

  • 为多选添加了显示小部件。

  • 所有字段都有field CSS类。

  • 多选小部件现在正确地尊重词汇表术语的值。

1.0rc1 (2010/07/05)

  • 更新了入口点注册,以与最新的zeam.form.base兼容。

1.0b3 (2010/06/22)

  • 字段包装注册现在通过入口点完成。

  • 添加了不变量验证。

  • 添加了一个通用的自适应数据管理器,可以将表单内容适配到一个或多个接口。

1.0b2 (2010/05/13)

  • 改进了小部件初始化,并支持测试层。

  • 修复了在使用词汇表工厂时选择小部件的问题。

1.0b1 (2010/05/03)

  • 这是初始版本,并非所有小部件都可用。

项目详情


下载文件

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

源分布

zeam.form.ztk-1.4.0.tar.gz (55.5 kB 查看哈希)

由以下支持