У меня проблема с созданием динамического RadioField с WTForms ...
Когда я пробую базовый пример:
targeting_type = RadioField('Label', choices=[('value', 'description'),
('value_two', 'whatever')])
все работает нормально.
Когда я пытаюсь использовать этот пример: Flask-SQLAlchemy wtform на основе db
по форме - это значения из БД. Но когда я нажимаю кнопку «Отправить», страница «перезагружается», но, вероятно, «без данных».
Пример моего views.py:
form = TargetingTypeForm()
form.targeting_type.choices = [
(targeting_type.id, targeting_type.name)
for targeting_type in SettingsTargetingType.query.all()]
if form.validate_on_submit():
print('test', form.targeting_type.data)
После отправки этой формы тестовые данные не печатаются: /
Пожалуйста, как правильно создать RadioField с запросом WTForms + SQLAlchemy?
Спасибо за любые ответы.
Поскольку вы используете ID в качестве значения, и я предполагаю, что это целое число, вам нужно использовать атрибут coerse
на вашем RadioField
!
Попробуй это:
form = TargetingTypeForm()
form.targeting_type.choices = [
(targeting_type.id, targeting_type.name)
for targeting_type in SettingsTargetingType.query.all()]
form.targeting_type.coerse = int
if form.validate_on_submit():
print('test', form.targeting_type.data)
или добавьте coerse=int
к определению targeting_type
в классе TargetingTypeForm
Попробуйте
form.tergeting_type.coerse = int