私はプログラマーではないので、私と穏やかにしてください。私は非常にうまくWTFormsを使用していますが、値を返さない隠しフィールドに問題があります。私は簡単な例を作りました、これがはっきりしていることを望みます。wtforms hiddenフィールドの値
forms.py:
from wtforms import (Form, TextField, HiddenField)
class TestForm(Form):
fld1 = HiddenField("Field 1")
fld2 = TextField("Field 2")
experiment.html:
{% from "_formshelper.html" import render_field %}
<html>
<body>
<table>
<form method=post action="/exp">
{% for field in form %}
{{ render_field(field) }}
{% endfor %}
<input type=submit value="Post">
</form>
</table>
</body>
</html>
(render_fieldはただのtdタグ、ラベル、フィールドとエラーを置く)
実験.py:
from flask import Flask, request, render_template
from templates.forms import *
from introspection import *
app = Flask(\__name__)
app.config.from_object(\__name__)
db_session = loadSession()
@app.route('/exp', methods=['POST', 'GET'])
def terms():
mydata = db_session.query(Peter).one()
form = TestForm(request.form, mydata)
if request.method == 'POST' and form.validate():
return str(form.data)
return render_template('experiment.html', form = form)
if __name__ == '__main__':
app.run(debug = True)
mydataは、2つのフィールドfld1とfld2を持つテーブルから唯一の行を返します。 fld1は整数の自動インクリメントフィールドです。フォームにそのデータが入力されているので、私がフォームを送信すると、experiment.pyを実行すると、次のように表示されます。
{'fld2': 'uldblah blah'、 'fld1':u'1 '}
しかし、私はのHiddenFieldにFLD1を変更した場合、私はヒット時に提出し、私が取得: { 'FLD2を':u'blah何とか何とか」、 'FLD1: '' U'}私が間違っているのは何
を?期待してくれてありがとう。
は、テンプレートに隠しフィールドを明示的に追加する必要はないことを明らかにしただけで、フォームタグの直下にflask-wtfによって追加されます。 – jxramos