Я хотел бы предварительно заполнить форму поиска, передав идентификатор элемента в поле c из других представлений (ссылка). Поэтому, когда я получаю доступ к /? TestFieldString = 12, должен быть выбран элемент с идентификатором 12
Он отлично работает для всех полей, которые мне нужны, кроме типа поля SelectMultipleField. Когда я получаю доступ к /? TestFieldSelectMultipleField = 12, он разбивает 12 по цифрам и передает ['1', '2'], в результате чего нужно выбрать 2 элемента (идентификаторы 1 и 2) вместо одного с идентификатором 12
Пожалуйста, запустите ниже код, чтобы воссоздать проблему
from flask import Flask, request
from flask_wtf import FlaskForm
from wtforms import StringField, SelectField, SelectMultipleField, SubmitField
from wtforms.fields.html5 import IntegerField, DecimalField
app = Flask(__name__)
app.config['SECRET_KEY'] = 'NotSoSecret'
class TestForm(FlaskForm):
testFieldString = StringField('testFieldString')
testFieldInteger = IntegerField('testFieldInteger')
testFieldDecimal = DecimalField('testFieldDecimal')
testFieldSelectField = SelectField('testFieldSelectField', coerce=int)
testFieldSelectMultipleField = SelectMultipleField('testFieldSelectMultipleField', coerce=int)
submit = SubmitField('Search')
@app.route('/')
def test():
test_value = '12'
query_string = dict()
query_string['testFieldString'] = test_value
query_string['testFieldInteger'] = test_value
query_string['testFieldDecimal'] = test_value
query_string['testFieldSelectField'] = test_value
query_string['testFieldSelectMultipleField'] = test_value
query_string['aaa'] = 'bbb'
form = TestForm(**query_string)
result = f'''
testFieldString: {form.testFieldString.data}</br>
testFieldInteger: {form.testFieldInteger.data}</br>
testFieldDecimal: {form.testFieldDecimal.data}</br>
testFieldSelectField: {form.testFieldSelectField.data}</br>
testFieldSelectMultipleField: {form.testFieldSelectMultipleField.data}</br>
'''
return result
if __name__ == '__main__':
app.run(debug=True)