1
私は論理的な問題に直面しています: 私はクラスfoo、foo_linked_object_1とfoo_linked_object_2を持っているとしましょう。関係は以下のとおりです。Flaskにエンティティごとに複数のフォームを表示する方法は?
- fooの1 ------メートルfoo_linked_object_1
- fooの1 ------メートルfoo_linked_object_2
私が何をしようとしていることは持っていることですfooオブジェクトに関するすべての情報(これまでのところ良い)と、それぞれのfooの下に、foo_linked_object_1またはfoo_linked_object_2を作成するための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'
どのように私はこれらのフォームを各エンティティにリンクさせるのですか?
'foos = Foo.query.filter_by(param = param)'これは、結果セットの代わりにクエリオブジェクトを返します。それはあなたが欲しいものですか? – metmirr
そうだと思います。どのように結果セットを取得する必要がありますか? @metmirr:ちょうど解決策を見つけました...私はちょうど.all()を追加する必要がありますか?少しばかだと感じる。 –
'すべて()'を使用します。 'foos = Foo.query.filter_by(param = param).all()' – metmirr