Your code works for me, here is a working example -
example.py
from flask import Flask, render_template from flask.ext.wtf import Form, SubmitField, Field, TextInput app = Flask(__name__) app.config['SECRET_KEY'] = 'Shh!' class CustomField(Field): widget = TextInput() def _value(self): if self.data: return u', '.join(self.data) else: return u'' def process_formdata(self, valuelist): if valuelist: self.data = [x.strip() for x in valuelist[0].split(',')] else: self.data = [] class ExampleForm(Form): status = CustomField() submit = SubmitField('POST') @app.route('/', methods=['post', 'get']) def hello_world(): form = ExampleForm() if form.validate_on_submit(): for entry in form.status.data: print '{}'.format(entry) return render_template('test.html', form=form) if __name__ == '__main__': app.run(debug=True)
Templates /test.html
<form action="." method="post"> {{ form.hidden_tag() }} {{ form.status }} {{ form.submit }} </form>
source share