Я создаю веб-сайт с помощью структуры Python Flask, в которой я использую WTForms. В одной форме у меня есть RadioField определяется следующим образом:
display = RadioField('display', default='ONE')
Здесь нет никаких вариантов выбора, потому что я делаю это позже (что отлично работает):
myForm = MyForm()
myForm.display.choices = [('ONE', 'one'), ('TWO', 'two')] # This works fine
Теперь я хочу установить значение по умолчанию для RadioField после, которое я установил для него. Итак, я попытался удалить значение по умолчанию из определения (я не уверен, всегда ли 'ONE'
доступен для выбора), и я создаю значение по умолчанию после того, как создам варианты, как я сделал выше:
myForm.display.default = 'ONE'
К сожалению, это не имеет никакого эффекта. Если я устанавливаю его вручную в определении поля, как я делаю до того, как он работает нормально, но не если я устанавливаю его динамически после того, как я создал варианты.
Кто-нибудь знает, как я могу динамически установить значение по умолчанию для RadioField в WTForms? Все советы приветствуются!
Вы можете передать значения по умолчанию в конструктор формы, чтобы вы могли сначала получить варианты, а затем передать выбор по умолчанию конструктору MyForm: MyForm (display = ‘ONE’) — person kramer65 schedule 15.07.2015
Вам нужно запустить
myForm.process()
после добавления вариантов и установки свойстваdefault
:Это связано с тем, что
default
распространяется на значение поля (и, в случаеRadioField
, на свойствоchecked
) в методеprocess
, который вызывается в конструкторе.