Plone wtforms集成
项目描述
简介
collective.wtforms是与WTForms表单库集成的Plone。
基本完整表单示例
基本表单的构建方式如下
from wtforms import Form, TextField from wtforms import validators class MyForm(Form): one = TextField("Field One", [validators.required()]) two = TextField("Field Two") three = TextField("Field Three") from collective.wtforms.views import WTFormView class MyFormView(WTFormView): formClass = MyForm buttons = ('Create', 'Cancel') def submit(self, button): if button == 'Create' and self.validate(): # do fun stuff here self.context.value = self.form.one.data
然后使用zcml连接表单
<browser:page name="my-form" for="*" class=".pathto.MyFormView" permission="zope2.View" />
您还可以覆盖使用的模板,然后执行
<form tal:replace="structure view/renderForm" />
以在任何视图位置渲染表单。
字段集
您可以轻松指定哪些字段与哪些字段集相关联
class MyFormView(WTFormView): formClass = MyForm buttons = ('Create', 'Cancel') fieldsets = ( ('Fieldset One', ('one', 'two')), ('Fieldset Two', ('three',)) ) def submit(self, button): if button == 'Create' and self.validate(): # do fun stuff here self.context.value = self.form.one.data
这将按标准Plone字段集渲染表单
控制面板
还可以轻松构建控制面板表单
from collective.wtforms.views import WTFormControlPanelView class MyFormView(WTFormControlPanelView): formClass = MyForm buttons = ('Save', 'Cancel') def submit(self, button): if button == 'Save' and self.validate(): # do fun stuff here self.context.value = self.form.one.data
WTFormView类属性
- formClass
使用的WTForm类。 必需
- label
显示在h1标签中的表单标签
- description
表单描述
- prefix
表单输入名称值的前缀。默认为wtform
- buttonPrefix
按钮名称的前缀。默认为form.actions.
- wrapWithFieldset
一个布尔值,用于决定是否应将字段包裹在字段集中。默认为True
- csrfProtect
保护表单免受csrf攻击。默认为True
- buttons
按钮名称的迭代器。默认为('保存','取消')
- fieldsets
(字段集名称,(字段名称,...))的迭代器。默认为空
- form
渲染表单时创建的WTForm表单实例。
- data
覆盖此属性以指定填充表单的默认值。这必须返回一个字典。
- submitted
布尔值,表示表单是否已提交。
- renderField(field)
渲染特定字段的函数。
- renderForm()
渲染整个表单的函数。
- validate()
检查csrf保护和验证表单。
- submit(button)
必须重写此方法以处理表单提交和运行验证。返回一个值以覆盖渲染模板(self.index())。例如,如果你进行重定向,就没有必要渲染页面。
def submit(self, button): if button == 'Save' and self.validate(): self.context.value = self.form.one.data self.request.response.redirect(self.context.absolute_url()) return 1
- mungeForm(form)
创建表单后对其进行修改的方法。这可以用来应用动态选项。
变更日志
1.0a6(2012-11-26)
处理按钮名称中的空格 [vangheem]
1.0a5(2012-11-26)
处理Unicode数据 [vangheem]
不要使用和显示默认的表单标题和描述
将字段描述移动到标签后面,通常是这里
添加了本地化目录,以便能够翻译基本默认按钮
提供了意大利语翻译
启用了Plone表单标签功能
1.0a4(2012-08-29)
提供了一些Bootstrap类提示
1.0a3(2011-10-11)
修复了某些情况下初始表单数据无法工作的问题。
1.0a2(2011-10-06)
修复了控制面板模板使用问题。
添加了在创建后轻松修改表单的能力
添加了提供表单值初始数据的能力
1.0a1(2011-09-29)
初始发布
项目详情
关闭
集体.wtforms-1.0a6.zip的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8c6caa66541d2d9b88afedcd691100cc5e106122d8de239ef0726c6a34b446d2 |
|
MD5 | a8e7bb4890450e8c71d2c8b414ff0217 |
|
BLAKE2b-256 | b7d8e4b4cebb36c58cb2dcf4f34c41aeda25d93ec37a95fb512ae7a204859343 |