我不是程序員,所以請對我溫柔。我正在使用WTForms,非常成功,但是我隱藏的字段沒有返回值,而文檔卻說他們應該這樣做。我已經構建了一個簡單的例子,希望這是明確的;wtforms隱藏字段值
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':u'blah blah blah','fld1':u'1'}
但是,如果我改變FLD1到HiddenField,當我點擊提交,我得到: { 'FLD2':u'blah等等等等」, 'FLD1':U ''}
我在做什麼錯?感謝預期。
剛纔瞭解到,顯然我們甚至不需要向模板顯式添加隱藏字段,它們會通過flask-wtf正好在「form」標籤下添加。 – jxramos