Flask 表单从JSON文件中选择字段数据

Flask 表单从JSON文件中选择字段数据,flask,flask-wtforms,wtforms,Flask,Flask Wtforms,Wtforms,因此,我尝试添加一个动态的select字段,并从json文件获取其数据 class CreateDelivery(FlaskForm): manufacturer = SelectField("Manufacturer", coerce=str) def manu_list(self): with open("manufacturers.json", "r") as file:

因此,我尝试添加一个动态的select字段,并从json文件获取其数据

class CreateDelivery(FlaskForm):
    manufacturer = SelectField("Manufacturer", coerce=str)

    def manu_list(self):
        with open("manufacturers.json", "r") as file:
            manu = json.load(file)
            form = CreateDelivery()
            form.manufacturer.choices = [(i['name'], i['data']) for i in manu['manufacturers']]

我看了文档,读了之后写了这篇文章,但是我仍然没有得到任何数据。我缺少什么来获取数据?

在收到gla3dr的评论后,我重新查看了文档。因此,我继续尝试调用函数的不同方法,直到我尝试将其放入routes.py文件中,并获取在route中创建的dorm并将其传递给函数。低,看它的工作。我把它清理干净了,它看起来像这样

@app.route("/create", methods=['GET', 'POST'])
def create():
    form = CreateDelivery() 
    with open("..\manufacturers.json", "r") as file:
            manu = json.load(file)
            form.manufacturer.choices = [(i['data'], i['name']) for i in manu['manufacturers']]

这就是我通过从json文件导入数据来创建动态SelectFields的方法。

如何调用
manu\u list
函数?我假设您正在使用此示例,请注意
edit\u user
函数不是
UserDetails
form class.Ok的一部分。我懂了。我该怎么称呼它呢?它是从类内调用的
CreateDelivery
还是从它的路径调用的?你的评论让我以不同的方式思考它,因此我能够让它工作。因此,我将其移动到路线,并使用路线中创建的表单作为要编辑的表单。我鼓励您发布一个答案,详细说明您如何解决问题!好啊我来写一篇!
class CreateDelivery(FlaskForm):
    manufacturer = SelectField("Manufacturer", coerce=str)

    def manu_list(self):
        with open("manufacturers.json", "r") as file:
            manu = json.load(file)
            form = CreateDelivery()
            form.manufacturer.choices = [(i['name'], i['data']) for i in manu['manufacturers']]