【发布时间】:2014-01-09 21:54:35
【问题描述】:
我正在使用WTForms-JSON 并处理嵌套表单。我想将内部表单设为可选,但如果存在内部表单,我希望它的字段是必需的。我遇到的问题是FormField 不接受验证器。
(虽然我使用的是 WTForms-JSON,但我相信这也适用于原版 WTForms。)
此代码有效,但不符合我的要求:
class InnerForm(Form):
foo_id = IntegerField("Foo ID", [Required()])
class OuterForm(Form):
inner = FormField(InnerForm)
上面代码的问题是inner 是隐式需要的。奇怪的是,当inner 被省略时validate() 返回False,errors 是空的。
此代码不起作用:
class InnerForm(Form):
foo_id = IntegerField("Foo ID", [Required()])
class OuterForm(Form):
inner = FormField(InnerForm, "Inner", [Optional()])
后者产生这个错误:
TypeError: FormField does not accept any validators. Instead, define them on the enclosed form.
我的问题是:如何使inner 可选,但如果inner 存在则需要foo_id?
【问题讨论】:
标签: wtforms wtforms-json