如何在Flask中显示每个实体的多个表单?

问题描述:

我正面临一个逻辑问题: 假设我有一个foo类,foo_linked_object_1和foo_linked_object_2类。的关系是:如何在Flask中显示每个实体的多个表单?

  • 富1 ------米foo_linked_object_1
  • 富1 ------米foo_linked_object_2

我想要做的就是有一个查看,显示关于一些foo对象的所有信息(到目前为止很好),并且在每个foo下面,有两种形式允许我创建foo_linked_object_1或foo_linked_object_2。

我尝试了以下解决方案:

forms.py

CreateFLO1(Form): 
    #FLO fields ... 

CreateFLO2(Form): 
    #FLO2 fields ... 

controller.py

@app.route('/foo/<param>') 
def foo_per_param(param): 
    foos = Foo.query.filter_by(param=param) 
    for foo in foos: 
     foo.FLO1Form = CreateFLO1() 
     foo.FLO2Form = CreateFLO2() 
    return render_template('foo.html', foos=foos) 

foo.html

{% for foo in foos %} 
    {{ foo.infos }} <! -- etc etc --> 
    {{ foo.FLO1Form.field1 }} 
    {{ foo.FLO1Form.field2 }} <! -- etc etc, same for FLO2Form --> 

神社返回我的以下错误:

UndefinedError: app.models.foo.Foo object has no attribute 'FLO1Form'

有谁知道我会如何链接这些形式与每个实体?

+0

'foos = Foo.query.filter_by(param = param)'这会返回一个查询对象,而不是结果集。那是你要的吗? – metmirr

+0

我这么认为。我该如何获得结果集? @metmirr:刚刚找到解决方案...我只需要添加.all()正确的?感觉有点愚蠢。 –

+0

使用'all()''foos = Foo.query.filter_by(param = param).all()' – metmirr

根据Metmirr:

我没有得到正确的信息。

Entity.query.filter_by(param=param) 

返回查询对象,而

Entity.query.filter_by(param=param).all() 

返回结果集。谢谢 !