跳转到主要内容

为Grok使用z3c.form编写的复合表单。

项目描述

megrok.z3cform.composed 是一个用于定义和注册复合表单的包。复合表单是由一系列子表单组成的表单。

megrok.z3cform.composed 基于 z3c.formmegrok.z3cform.base

入门指南

我们导入所需的依赖项

>>> import grokcore.view as grok
>>> import megrok.z3cform.composed
>>> from megrok.z3cform.composed import ComposedForm, SubForm

导入组件工具

>>> from zope.component import getMultiAdapter
>>> from zope.publisher.browser import TestRequest

定义复合表单

上下文

表单需要一个上下文。让我们创建一个用于测试目的的简单模型

>>> class MyContent(object):
...    pass

声明

>>> class Form(ComposedForm):
...   grok.context(MyContent)

注册

>>> grok_component('composed', Form)
True

查询

>>> content = MyContent()
>>> request = TestRequest()
>>> composed = getMultiAdapter((content, request), name="form")
>>> composed
<megrok.z3cform.composed.tests.Form object at ...>
>>> composed.subforms
[]
>>> composed.updateForm()
>>> composed.subforms
[]

定义子表单

声明

>>> class SubFormOne(SubForm):
...     grok.context(MyContent)
...     megrok.z3cform.composed.order(2)
...     megrok.z3cform.composed.view(Form)
>>> class SubFormTwo(SubForm):
...     grok.context(MyContent)
...     megrok.z3cform.composed.order(1)
...     megrok.z3cform.composed.view(Form)

注册

>>> grok_component('one', SubFormOne)
True
>>> grok_component('one', SubFormTwo)
True

查询

>>> composed.subforms
[]
>>> composed.updateForm()
>>> composed.subforms
[<megrok.z3cform.composed.tests.SubFormTwo object at ...>, <megrok.z3cform.composed.tests.SubFormOne object at ...>]
>>> for sub in composed.subforms:
...   print sub.prefix, sub.parentForm
subformtwo <megrok.z3cform.composed.tests.Form object at ...>
subformone <megrok.z3cform.composed.tests.Form object at ...>

变更日志

0.1 (2009-10-27)

  • 初始发布

项目详情


下载文件

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

源分发

megrok.z3cform.composed-0.1.tar.gz (4.5 kB 查看哈希)

上传时间:

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面