Как заставить радиополе показывать значение по умолчанию с помощью фляги и wtforms

Я использую радиополе и хочу, чтобы значение по умолчанию отображалось как (.) вместо ( ) . Я попробовал простой подход:

choice_switcher = RadioField('Choice?', [validators.Required()], choices=[('choice1', 'Choice One'),('choice2', 'Choice Two')], default='choice1')

Это не сработало. Он отображает два варианта:

( ) Choice One
( ) Choice Two

Принимая во внимание, что я хотел бы видеть это:

(.) Choice one
( ) Choice Two

person Alexander Putilin    schedule 13.08.2014    source источник


Ответы (2)


У меня работает нормально:

пример.py

from flask import Flask, render_template
from flask_wtf import Form
from wtforms import validators, RadioField

app = Flask(__name__)

app.secret_key = 'TEST'

class TestForm(Form):
    choice_switcher = RadioField(
        'Choice?',
        [validators.Required()],
        choices=[('choice1', 'Choice One'), ('choice2', 'Choice Two')], default='choice1'
    )


@app.route('/')
def hello_world():
    testform = TestForm()
    return render_template('test_form.html', form=testform)


if __name__ == '__main__':
    app.run(debug=True)

test_form.html

{{ form.choice_switcher() }}

сгенерированный html:

<ul id="choice_switcher">
    <li><input checked id="choice_switcher-0" name="choice_switcher" type="radio" value="choice1"> <label
            for="choice_switcher-0">Choice One</label></li>
    <li><input id="choice_switcher-1" name="choice_switcher" type="radio" value="choice2"> <label
            for="choice_switcher-1">Choice Two</label></li>
</ul>
person Doobeh    schedule 14.08.2014
comment
Благодарю вас! Оказывается, я использовал какой-то странный макрос, а не wtforms - person Alexander Putilin; 17.08.2014

Если вы подходите к этому вопросу с той же проблемой шесть лет спустя, как и я, вы можете проверить, не установили ли вы случайно coerce=int в RadioField в классе вашей формы. Это происходит автоматически, за исключением отказа соблюдать значение по умолчанию, указанное либо в классе формы (например, default=3), либо значение по умолчанию, указанное вами в маршруте из данных пользователя. Надеюсь, это поможет кому-то когда-нибудь.

person George    schedule 29.04.2021