首页 > 解决方案 > 在多个表单中重用 wtforms 字段

问题描述

我有一堆具有相似字段的表单。为了简化我的代码,我想在表单之外定义字段,然后根据需要将字段添加到表单中,如下所示:

name = wt.StringField("name")
age = wt.StringField("age")

class Form1(FlaskForm):
    name=name

class Form2(FlaskForm):
    age=age

class Form3(FlaskForm):
    name=name
    age=age

这种模式似乎有效,但我以前从未见过有人这样做,所以我想确保没有边缘情况会破坏。如果是这样,有没有更好的方法来做到这一点?

标签: pythonflaskflask-wtformswtforms

解决方案


尽管我的问题中的模式有效,但我对使用它感到紧张,因为它似乎不是推荐的做事方式。这是一种更安全的方法,可以满足我的需求:

def name_field(): return wt.StringField("name")
def age_field(): return wt.StringField("age")

class Form1(FlaskForm):
    name=name_field()

class Form2(FlaskForm):
    age=age_field()

class Form3(FlaskForm):
    name=name_field()
    age=age_field()

推荐阅读