跳转到主要内容

为zeam.form提供额外的SQLAlchemy支持

项目描述

zeam.form.rdbzeam.form.base提供生成表单字段的辅助工具,使用来自zeam.form.ztk的表单字段从SQLAlchemy模型。

为了实现这一功能,您必须使用表单中的描述符ModelFields创建您的字段。它将自动获取表单的上下文并相应地生成字段(为了性能原因,它们将被缓存)。

示例

from zeam.form.rdb import ModelFields
from zeam.form.base import Form

class MyForm(Form):
    label = "Test form"
    fields = ModelFields()

在您的SQLAlchemy模式中,您可以使用额外的字典info来控制生成的小部件。外键将根据您选择作为标题的列生成可能的值选择。

示例

from sqlalchemy import Column, ForeignKey
from sqlalchemy.types import Integer, String
from zeam.form.ztk.widgets.uri import URIField

idT_Effort = Column(
    'idT_Effort',
    Integer,
    primary_key=True,
    info={'title': u"Identifier"})
idT_Opportunity = Column(
    'idT_Opportunity',
    Integer,
    ForeignKey('T_Opportunity.idT_Opportunities'),
    info={'title': u'Opportunity',
          'foreignTitleColumn': 'Title'})
Name = Column(
    'Name',
    String(45),
    info={'minLength': 20,
          'maxLength': 45})
URL = Column(
    'URL',
    String(63),
    info={'title': u"URL",
          'description': u"Website URL"
          'factory': URIField,
          'defaultValue': 'http://github.com',
          'required': True})

对于外键(ForeignKey),您可以在info字典中提供多个列给foreignTitleColumn,以及一个用于创建标题的函数foreignTitleFactory。同时,还可以指定foreignTitleQuery来细化用于获取标题术语的SQLAlchemy请求。

除非列是可空的,或者通过info提供了required选项,否则将需要一个字段。

titledescription将从info中使用,以创建表单字段。

变更

1.0.1 (2012/12/12)

  • 修复标题工厂以支持Unicode值。

1.0 (2012/10/11)

  • 重构以不再依赖于zope.schemamegrok.rdb。SQLAlchemy列直接转换为zeam表单字段。这需要zeam.form.ztk 1.3或更高版本。

  • 添加字段生成的测试。

1.0b2 (2012/06/21)

  • 添加对title_query的支持,用于在生成的ForeignKey词汇中过滤术语。

1.0b1 (2012/04/27)

  • 初始版本。

项目详情


下载文件

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

源分发

zeam.form.rdb-1.0.1.tar.gz (6.7 kB 查看散列)

上传时间

支持者: