2

データベースの行から一連のフォーム フィールドを動的に作成しています。各フィールドには独自のフォームがあります。フォームが送信されると、データベース内の行が更新されます。私が抱えている問題は、送信されたフォームを関連する行と一致させるにはどうすればよいですか? すべてのフォーム フィールドは「shared」という同じ名前になっていますが、各フィールドには独自のフォームがあるため、これで問題ありません。

ビュー.py

def setting(nickname):
    user = User.query.filter_by(nickname = nickname).first()
    cars = user.cars.all()

    form_list = []
    for car in cars:
        class F(Form):
            pass
        setattr(F, 'shared', TextField(default=car.shared, label = car.carname))
        form = F(request.form, obj = car)
        form_list.append(form)

    if form.validate_on_submit():
        flash(request.form)
        flash(form.shared.data)

    return render_template('settings.html',
        user = user,
        form_list = form_list
    )

settings.html

{% for field in form_list %}
<form action="" method="post" name="share">
    {{ field.shared.label }} - {{ field.shared }}
    <input type="submit" value="share/make private"/>
</form>
{% endfor %}

ありがとう

4

1 に答える 1