'Flask-wtf SelectMultipleField: how to configure default choices
In my app I use a among others a SelectMultipleField ("stektypes") for creating “stekken”, using the following form:
class createStekForm(FlaskForm):
name = StringField("Naam van de stek", validators=[DataRequired()])
water = StringField("Naam van het water", validators=[DataRequired()])
description = TextAreaField("Beschrijving van het water")
stektypes = SelectMultipleField(u'Stektypes', coerce=int)
street = StringField("Straat", validators=[DataRequired()])
number = StringField("Nummer", validators=[DataRequired()])
postalcode = StringField("Postcode", validators=[DataRequired()])
place = StringField("Plaats", validators=[DataRequired()])
country = StringField("Land", validators=[DataRequired()])
latitude = DecimalField("Latitude", validators=[DataRequired()])
longitude = DecimalField("Longitude", validators=[DataRequired()])
saveStek = SubmitField("Bewaar stek")
navigateTo = SubmitField("Navigeer naar stek")
addToSession = SubmitField("Voeg stek toe aan sessie")
So far so good.
Somewhere else in the app I want to modify an individual “stek”, using a similar SelectMultipleField, but then initialized with the earlier defined values.
From the documentation [https://wtforms.readthedocs.io/en/2.3.x/fields/][1] I learned that that is possible as follows…
class wtforms.fields.SelectMultipleField(default field arguments, choices=[], coerce=unicode, option_widget=None)
In my case it does not work.
The view from which I am calling the form is as follows.
@stekken.route('/stek_modify<stekId>', methods=['GET', 'POST'])
@login_required
def stek_modify(stekId):
form = createStekForm() # coerce needs to be set in form definition!!!
form.stektypes.choices = [(1, "aa"), (2, "bb"), (3, "cc"), (4, "dd")]
#form.stektypes.default = (2, 'bb')
#form.stektypes.default = 2
form.stektypes.default = 'bb'
if form.validate_on_submit():
......
......
return render_template('stek_modify.html', form=form, user=current_user, stek=selectedStek, key=current_app.config["GOOGLEMAPS_KEY"])
Any hints / tips would be appreciated.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|