简单的模式:
class AdjustPWMForm(Form):
dutyCycle = IntegerField('dutycycle')
#dutyCycle = IntegerField('dutycycle', default=44)
查看功能:
def adjust():
user = g.user
form = AdjustPWMForm()
form.dutyCycle.data = 55
if form.validate_on_submit():
dutyCycle = form.dutyCycle.data
print('result %s', dutyCycle)
return redirect(url_for('statusPage'))
return render_template('adjust.html', title='Adjust PWM', user=user, form=form)
提交表单时,无论输入什么,结果始终为 55。如果我注释掉 55 行,并使用 default=44 取消注释该行,则表单可以正常工作,但我确实需要能够设置预填充值(它将从数据库中检索)。
似乎我错过了一些非常明显的东西,但我四处寻找却无法弄清楚。
我发现 change_username 中的部分在 wtforms 中很有用,这导致我:
def adjust():
user = g.user
form = AdjustPWMForm(dutyCycle=55)
if form.validate_on_submit():
dutyCycle = form.dutyCycle.data
return redirect(url_for('statusPage'))
return render_template('adjust.html', title='Adjust PWM', user=user, form=form)
这是实现这一目标的最佳方式吗?
最佳答案
您可以在 GET 请求上设置默认值
def adjust():
user = g.user
form = AdjustPWMForm()
if request.method == 'GET':
form.dutyCycle.data = 55
if form.validate_on_submit():
dutyCycle = form.dutyCycle.data
print('result %s', dutyCycle)
return redirect(url_for('statusPage'))
return render_template('adjust.html', title='Adjust PWM', user=user, form=form)
或在类中设置默认值
class AdjustPWMForm(Form):
dutyCycle = IntegerField('dutycycle', default=55)
如果默认值适用于此表单的所有实例,我将在类定义中设置默认值。如果我需要根据其他一些查找为字段设置默认值,我会使用
form = AdjustPWMForm(dutyCycle=55)
方式设置它。关于python - 预填充 Flask-WTForm IntegerField,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26343254/