【问题标题】:SQLAlchemy object with Null values pre-populating FlaskForm FloatField with string 'None'具有 Null 值的 SQLAlchemy 对象使用字符串“None”预填充 FlaskForm FloatField
【发布时间】:2018-03-01 14:27:30
【问题描述】:

我有这样的可选 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 不接受字符串。当用户尝试重新提交已编辑的条目时,“None”是一个字符串,他们会收到一条警告,即表单中预先填充“None”的所有 FloatField 都不正确。但是,如果它们被预先填充为空白,则用户可以重新提交,而无需删除“无”一词。

【问题讨论】:

  • 你的Entry 模型是什么样的?
  • 编辑了我上面的帖子

标签: flask flask-sqlalchemy flask-wtforms


【解决方案1】:

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

if test_entry.data is None:
    form = TestForm(data='')

【讨论】:

    猜你喜欢
    • 2017-11-21
    • 1970-01-01
    • 1970-01-01
    • 2017-03-22
    • 2016-08-15
    • 1970-01-01
    • 2014-07-05
    • 1970-01-01
    • 2016-01-22
    相关资源
    最近更新 更多