मैं कोई प्रोग्रामर नहीं हूं, इसलिए कृपया मेरे साथ सौम्य रहें। मैं 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 सिर्फ टीडी टैग में लेबल, क्षेत्र और त्रुटियों डालता है)
प्रयोग .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 एक पूर्णांक autoincrement फ़ील्ड है। फ़ॉर्म उस डेटा के साथ पॉप्युलेट किया गया है, इसलिए यदि मैं फॉर्म सबमिट करता हूं, तो जब मैं फॉर्म जमा करता हूं तो मुझे मिलता है:
{'fld2': u'blah blah blah ',' fld1 ': u'1'}
लेकिन अगर मैं HiddenField को fld1 बदलने के लिए, जब मैं हिट भेजते हैं तो मैं मिलता है: { 'fld2': u'blah, ऐसा ',' fld1 ': यू' '}
क्या मैं गलत कर रहा हूँ? प्रत्याशा में धन्यवाद।
ने अभी सीखा है कि स्पष्ट रूप से हमें टेम्पलेट में छिपे हुए फ़ील्ड को स्पष्ट रूप से जोड़ने की आवश्यकता नहीं है, वे 'फॉर्म' टैग के नीचे फ्लास्क-डब्ल्यूटीएफ द्वारा हमारे लिए जोड़े गए हैं। – jxramos