के साथ WTForms का उपयोग कर फ्लास्क ऐप मेरे पास एक फ्लास्क एप्लिकेशन है जो उपयोगकर्ता इनपुट के लिए WTForms का उपयोग करता है। यह एक फॉर्म में SelectMultipleField
का उपयोग करता है। मुझे चयनित होने पर फ़ील्ड में सभी आइटम पोस्ट करने के लिए ऐप नहीं मिल रहा है; यह केवल पहले आइटम को भेजता है चाहे उपयोगकर्ता कितने चुनता है।SelectMultipleField
Flask documentation कहते हैं इस क्षेत्र प्रकार से भेजे गए डेटा के बारे में इस है, लेकिन मैं इस व्यवहार को नहीं देख पा रहे:
SelectMultipleField पर डेटा जिनमें से प्रत्येक है वस्तुओं की एक सूची के रूप में संग्रहीत किया जाता है, फॉर्म इनपुट से चेक और coerced।
यहाँ है कि यह दिखाता है एक पूर्ण, कम से कम बोतल अनुप्रयोग है:
#!/usr/bin/env python
from flask import Flask, render_template_string, request
from wtforms import Form, SelectMultipleField
application = app = Flask('wsgi')
class LanguageForm(Form):
language = SelectMultipleField(u'Programming Language', choices=[('cpp', 'C++'), ('py', 'Python'), ('text', 'Plain Text')])
template_form = """
{% block content %}
<h1>Set Language</h1>
<form method="POST" action="/">
<div>{{ form.language.label }} {{ form.language(rows=3, multiple=True) }}</div>
<button type="submit" class="btn">Submit</button>
</form>
{% endblock %}
"""
completed_template = """
{% block content %}
<h1>Language Selected</h1>
<div>{{ language }}</div>
{% endblock %}
"""
@app.route('/', methods=['GET', 'POST'])
def index():
form = LanguageForm(request.form)
if request.method == 'POST' and form.validate():
print "POST request and form is valid"
language = request.form['language']
print "languages in wsgi.py: %s" % request.form['language']
return render_template_string(completed_template, language=language)
else:
return render_template_string(template_form, form=form)
if __name__ == '__main__':
app.run(debug=True)
वह था! बहुत धन्यवाद! – Raj