对zeam.form的额外sqlalchemy支持
zeam.form.rdb的Python项目详细描述
zeam.form.rdb提供了一个帮助程序来为 zeam.form.base,使用SQLAlchemy中的zeam.form.ztk字段 模型。
要完成此任务,必须使用描述符创建字段 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})
对于外键,您可以提供多个 要foreignTitleColumn的列,以及要调用的函数 在^{tt3}中创建标题为foreignTitleFactory。$ 措辞。foreignTitleQuery可以指定来优化 用于获取标题术语的sqlalchemy请求。
除非列可以为空或选项 required通过info给出。
^来自info的{tt10}$和description也将用于 创建窗体字段的顺序。
更改
1.0.1(2012/12/12)
- 修复标题工厂以支持Unicode值。
1.0(2012/10/11)
- 重构不再依赖zope.schema或 megrok.rdb。sqlalchemy列直接转换为zeam 表单字段。这需要zeam.form.ztk1.3或更高版本。
- 添加字段生成测试。
1.0b2(2012/06/21)
- 添加对title_query的支持以筛选生成的 外国语词汇。
1.0b1(2012/04/27)
- 初始版本。