为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 |