跳转到主要内容

为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 (6.6 kB 查看哈希值)

上传时间:

支持

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