具有Null值的SQLAlchemy对象使用字符串'None'预填充FlaskForm FloatField

问题描述 投票:0回答:1

我有可选的FloatFields设置如下:

class TestForm(FlaskForm):
    data = FloatField('Test Field', validators=[Optional()]) 

这允许用户将该字段留空。但是当他们去编辑条目时,SQLAlchemy对象中的任何Null值都预先填充了字符串'None'。我预先填充了这样的表单:

class Entry(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    data = db.Column(db.Float)

test_entry = Entry.query.filter_by(id=entry).first()
form = TestForm(obj=test_entry)
return render_template('test.html', form=form)

问题是FloatField不接受字符串。当用户尝试重新提交已编辑的条目时,“无”是一个字符串,它们会收到一个警告,表明预先填充“无”的表单中的所有FloatField都不正确。但如果将它们预先填充为空白,则用户可以重新提交,而无需删除“无”字样。

flask flask-sqlalchemy flask-wtforms
1个回答
0
投票

不确定这是否是最佳解决方案,但我使用了一种解决方法

if test_entry.data is None:
    form = TestForm(data='')
© www.soinside.com 2019 - 2024. All rights reserved.