z3cform的megrok扩展
项目描述
《megrok.z3cform.base》是在《z3c.form》之上的一个不是很厚的层。它提供了一种使用《Grok》方式来注册您的表单和部件。此外,该包包含了一系列基本表单,可以直接与grokcore.layout(或旧版的《megrok.layout》)一起使用。
通过使用《megrok.pagetemplate》,表单的自定义也得到了简化,允许您轻松覆盖模板。
表单注册
模型
我们设置了一些模型作为表单上下文
>>> import grokcore.component as grok >>> from zope import interface, schema >>> class IMammoth(interface.Interface): ... name = schema.TextLine(title=u"Name") ... age = schema.Int(title=u"Age") >>> class Mammoth(grok.Context): ... grok.implements(IMammoth) ... name = schema.fieldproperty.FieldProperty(IMammoth['name']) ... age = schema.fieldproperty.FieldProperty(IMammoth['age'])
我们声明了表单。它与 grok.View 非常相似
>>> import megrok.z3cform.base as z3cform >>> class TestForm(z3cform.Form): ... grok.context(Mammoth)
感知和查询
我们让 Grok 注册组件
>>> grok.testing.grok_component('form', TestForm) True
现在,我们可以正常查询它
>>> from zope.publisher.browser import TestRequest >>> request = TestRequest() >>> manfred = Mammoth() >>> from zope.component import getMultiAdapter >>> myform = getMultiAdapter((manfred, request), name="testform") >>> myform <TestForm object at ...> >>> print myform() <form action="http://127.0.0.1" method="post" enctype="multipart/form-data" class="form-testform"> ...
布局集成
《megrok.z3cform.base》与《grokcore.layout》无缝集成,提供基础类以简化项目中的布局集成。
让我们快速浏览一下。我们创建一个布局
>>> import grokcore.layout >>> class MyLayout(grokcore.layout.Layout): ... grok.context(IMammoth) ... def render(self): ... return 'The layout content is: %s' % self.view.content()
我们声明一个页面表单。页面表单是在布局中显示的表单
>>> class PageForm(z3cform.PageForm): ... grok.context(Mammoth)
我们使用 Grok 注册组件
>>> grok.testing.grok_component('page', PageForm) True >>> grok.testing.grok_component('layout', MyLayout) True
现在,在渲染表单时,我们将其嵌入到布局中
>>> pageform = getMultiAdapter((manfred, request), name="pageform") >>> print pageform() The layout content is: <form action="http://127.0.0.1" method="post" enctype="multipart/form-data" class="form-pageform"> ...
变更日志
0.5 (2012-07-21)
添加了对新的 grokcore.layout 的支持。不再直接依赖于 megrok.layout。[danilobotelho]
0.4 (2012-06-22)
添加了验证器、不变量和默认值装饰器。这些装饰器的灵感来自 plone.directives.form。
添加了对组(z3c.form.group)的支持。[danilobotelho]
修复了 WidgetTemplateGrokker。[danilobotelho]
在 __init__.py 中添加了 HIDDEN_MODE。[danilobotelho]
0.3 (2010-02-11)
修复了小部件模板解析器中依赖操作系统的路径处理。
0.2 (2009-11-18)
修复了一个错误,该错误在编辑期间触发了 ObjectModifiedEvent 两次。[trollfot]
升级以兼容 grok 1.1。[trollfot]
0.1 (2009-10-20)
初始发布
项目详情
megrok.z3cform.base-0.5.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 07ce4ae77465fa2175a0023b990b1cfe66e48095958893ac5577e468b86e64d5 |
|
MD5 | 8c6d4997e3d19c0d90e126c2d9f397c5 |
|
BLAKE2b-256 | 36a464e7dc118933ceecbf32fa30b511ef1422759519530427e117f8a5b07995 |