为megrok.z3cform.base提供的通用模板
项目描述
megrok.z3cform.layout提供可用于与megrok.z3cform.base一起使用的通用模板。这些模板完全独立于megrok.z3cform.base库,这意味着您可以简单地交换或覆盖它们。
入门指南
我们导入基本组件来测试我们的表单布局
>>> from megrok.z3cform.base import DisplayForm, EditForm, Fields >>> from grokcore.component import context, implements >>> from grokcore.component.testing import grok, grok_component
让我们从一个简单的例子开始。我们创建一个人员对象
>>> from zope.interface import Interface, implements >>> from zope.schema import TextLine
我们的对象接口
>>> class IPerson(Interface): ... name = TextLine(title = u'Name') ... age = TextLine(title = u'Age')
我们的对象类
>>> class Person(object): ... implements(IPerson) ... name = u"" ... age = u""
以及我们的实例
>>> peter = Person() >>> peter <megrok.z3cform.base.ftests.Person object at ...>>>> IPerson.providedBy(peter) True
渲染表单
目前,megrok.z3cform.layout仅提供一种适用于所有不同类型表单的模板
>>> class Edit(EditForm):
... context(Interface)
... fields = Fields(IPerson)
>>> grok_component('edit', Edit)
True
>>> from zope.component import getMultiAdapter
>>> from zope.publisher.browser import TestRequest
>>> request = TestRequest()
>>> edit = getMultiAdapter((peter, request), name="edit")
>>> print edit()
<form action="http://127.0.0.1" method="post"
enctype="multipart/form-data" class="form-edit">
<div class="errors">
</div>
<p class="documentDescription"></p>
<input type="hidden" name="camefrom" />
<div id="edition-fields">
<div class="field ">
<label for="form-widgets-name">
<span>Name</span>
<span class="fieldRequired" title="Required">
<span class="textual-info">(Required)</span>
</span>
</label>
<div class="widget">
<input id="form-widgets-name" name="form.widgets.name"
class="text-widget required textline-field"
value="" type="text" />
</div>
</div>
<div class="field ">
<label for="form-widgets-age">
<span>Age</span>
<span class="fieldRequired" title="Required">
<span class="textual-info">(Required)</span>
</span>
</label>
<div class="widget">
<input id="form-widgets-age" name="form.widgets.age"
class="text-widget required textline-field"
value="" type="text" />
</div>
</div>
</div>
<div id="actionsView">
<span class="actionButtons">
<input id="form-buttons-apply" name="form.buttons.apply"
class="submit-widget button-field" value="Apply"
type="submit" />
</span>
</div>
</form>
它对没有操作的表单也适用
>>> class Display(DisplayForm):
... context(Interface)
... fields = Fields(IPerson)
>>> grok_component('display', Display)
True
>>> view = getMultiAdapter((peter, request), name="display")
>>> print view()
<form action="http://127.0.0.1" method="post"
enctype="multipart/form-data" class="form-display">
<div class="errors">
</div>
<p class="documentDescription"></p>
<input type="hidden" name="camefrom" />
<div id="edition-fields">
<div class="field ">
<label for="form-widgets-name">
<span>Name</span>
<span class="fieldRequired" title="Required">
<span class="textual-info">(Required)</span>
</span>
</label>
<div class="widget">
<span id="form-widgets-name"
class="text-widget required textline-field"></span>
</div>
</div>
<div class="field ">
<label for="form-widgets-age">
<span>Age</span>
<span class="fieldRequired" title="Required">
<span class="textual-info">(Required)</span>
</span>
</label>
<div class="widget">
<span id="form-widgets-age"
class="text-widget required textline-field"></span>
</div>
</div>
</div>
</form>
变更日志
0.2.1 (2009-12-03)
修复:现在错误可以在字段内正确渲染。
0.2 (2009-12-03)
更新了模板,使其不会显示隐藏字段的标签。
添加了缺失的依赖项。
0.1 (2009-11-02)
初始发布
项目详情
关闭
megrok.z3cform.layout-0.2.1.tar.gz的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 085f6b3c5af25cb1565ba86c6919360e20c67408959b6d0b0fb746439f7cb593 |
|
| MD5 | 170351e27a796d364ddf46ec8ace4974 |
|
| BLAKE2b-256 | f8876ded1e055c4d18da8587604641953e997a51968d7d53aa0c5d7a390ad5a9 |