【问题标题】:WTForms TimeField default valueWTForms TimeField 默认值
【发布时间】:2019-09-16 02:52:26
【问题描述】:

我使用WTForms 制作了一个编辑表单。

现在我想在TimeField 表单中创建一个从数据库预填充的默认值。

这是上面表格中代码的sn-p:

from wtforms.fields.html5 import TimeField

class ScheduleForm(Form):
    start_at = TimeField('Start at',validators=[required()])
    end_at = TimeField('End at', validators=[required()])
    # ...
    # ...

我尝试在我这样调用表单的路由上调用 obj 参数:

@app.route('/edit_schedule/<int:schedule_id>', methods=['GET', 'POST'])
def edit_schedule(schedule_id):
    schedule = Schedule.query.filter_by(id=schedule_id).first()

    print(schedule.start_at) # I got the value from database here
    print(schedule.end_at) # I got the value from database here

    form = ScheduleForm(obj=schedule) # call the obj argument

但是该字段上的值仍然没有预先填充,然后我尝试像这样设置默认值:

form = ScheduleForm(obj=schedule)
form.end_at.default = schedule.start_at
form.end_at.default = schedule.end_at

还是不行,然后我尝试在波纹管下面添加我上面设置的默认值:

form.process()

还是不行,那我试试lambda

form.start_at.default = lambda: db.session.query(Schedule.start_at).filter_by(id=schedule.id).first()
form.end_at.default = lambda: db.session.query(Schedule.end_at).filter_by(id=schedule.id).first()

以上所有方法都没有人可以工作。

所以我的问题的重点是,如何在TimeField..上设置或预填充默认值?

编辑:这是我的模型代码的 sn-p:

class Schedule(db.Model):
    __tablename__ = 'schedule'
    id = db.Column(db.Integer, primary_key=True)
    start_at = db.Column(db.Time())
    end_at = db.Column(db.Time())

【问题讨论】:

    标签: python flask flask-wtforms wtforms


    【解决方案1】:

    您必须填写 form.start_at.dataform.end_at.data

    form.end_at.data = schedule.start_at
    form.end_at.data = schedule.end_at
    

    我猜默认值在初始化时会被初始化一次。

    【讨论】:

    • 还是不行,但是,非常感谢@DarkSuniuM回复了我的问题
    【解决方案2】:

    我通过在我的模板上设置默认值来解决这个问题,如下行:

    {{ f.render_field(form.start_at, value=schedule.start_at) }}
    {{ f.render_field(form.end_at, value=schedule.end_at) }}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-18
      • 2021-04-07
      • 2012-08-19
      • 2020-12-14
      • 2014-03-02
      • 2015-02-09
      相关资源
      最近更新 更多