3
name: label
のディクテーションに基づいてフィールドを持つフォームクラスを定義したいとします。私はほぼ成功した以下を試しました。しかし、テンプレートのフィールドをレンダリングするとAttributeError: 'UnboundField' object has no attribute '__call__'
となりました。フォームにフィールドを動的に追加するにはどうすればよいですか?フィールドを動的にWTFormsフォームに追加する
def build_form(name, record):
class ContactForm(FlaskForm):
name = StringField(name)
fieldlist = {}
for key, value in record.items():
fieldlist[key] = StringField(key)
@app.route('/', methods=['GET', 'POST'])
def showform():
form = ContactForm(request.form)
if request.method == 'POST':
return 'form processed'
return render_template('cardcompare.tpl', record=record, form=form)
<form method=post>
{{ form.name() }}
{% for key, value in record.items() %}
{{ form.fieldlist[key]() }}
{% endfor %}
<input type=submit value=Register>
</form>
ありがとう、ありがとうございましたが、動的なフィールドをテンプレート内で繰り返すことができる構造に追加する方法はありますか? (例のフィールドリストのような)?目標は、動的フィールドをテンプレート内の静的とは異なる方法で処理することです。 – Omniver
その部分は編集によって過度に削除されました。私はそれを回復した。 – Feodoran
私は、フォームに属性リストを渡す必要があるので、 'setattr'をMyFormの' __init__'の中に入れて同じことをしました。最初の実行以外は動作します、なぜ分かりますか? – TomSawyer