我有两个厕所
class SportStartForm(Form):
ski = DateField(format='%d.%m.%Y')
kitesurfing = DateField(format='%d.%m.%Y')
windsurfing = DateField(format='%d.%m.%Y')
surfing = DateField(format='%d.%m.%Y')
class UpdateUserForm(Form):
sport_start_at = FormField(SportStartForm)
它工作得很好,但是我想动态生成一个这个表单
^{pr2}$如果我这样做,我会得到一个关于表单验证的异常
^{3}$我在这里研究了几个关于标签的问题,这些标签都是关于动态生成的,但是对我来说没有用。我错过了什么?在
导致该错误的基本问题是,由于您重写了} 的{a1}。在
__new__
并调用了超级构造函数,因此您最终绕过了将字段映射传递到^{然而即使试图符合这个界面,也可能不会得到您想要的结果,这不是没有大量的工作要做。原因是WTForms在
Form
上使用了一个元类,它在类实例化之前的某个点检查字段并缓存未绑定字段列表,并且在实例化时完成输入处理,这要求在该点声明所有字段。在按照Solving Specific Problems页面中的提示,您可以使用以下方法之一更安全地创建动态表单:
1。假设SPORTS在应用程序初始化后不会发生变化,我们可以简单地创建一个顶级类并在其上设置属性
2.或者,如果运动是可以改变的,并且由于某些用户规则而具有动态性,则可以像在上面链接的页面中一样在视图中进行,或者作为工厂来完成:
^{pr2}$工厂的用法可能是这样的:
相关问题 更多 >
编程相关推荐