如何在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'
有谁知道我会如何链接这些形式与每个实体?
答
根据Metmirr:
我没有得到正确的信息。
Entity.query.filter_by(param=param)
返回查询对象,而
Entity.query.filter_by(param=param).all()
返回结果集。谢谢 !
'foos = Foo.query.filter_by(param = param)'这会返回一个查询对象,而不是结果集。那是你要的吗? – metmirr
我这么认为。我该如何获得结果集? @metmirr:刚刚找到解决方案...我只需要添加.all()正确的?感觉有点愚蠢。 –
使用'all()''foos = Foo.query.filter_by(param = param).all()' – metmirr