+-
Flask-wtf不能设置DateTimeField的默认值。

我在Flask上做了一个项目,我需要为项目中的 wtforms.DateTimeField()

def new_edit_task(task):
    class EditTask(FlaskForm):
        new_name = StringField('Name of task', validators=[DataRequired()], default=task.name)
        new_description = TextAreaField('Description', validators=[DataRequired()], default=task.description)
        new_deadline = DateTimeField("Deadline", format='%Y-%m-%dT%H:%M',
                                     default=task.deadline)
        new_link = StringField('Email', validators=[DataRequired()], default=task.link)
        submit = SubmitField('Отправить')
    return EditTask()

任务 是一个SQLAlchemy模型和 任务期限日期时间.日期时间 对象。

我就是这样渲染的 新的截止日期 HTML中的字段。

{{ form.new_deadline(class="half-width", type='datetime-local') }}<br>
      {% for error in form.new_deadline.errors %}
      <p class="alert alert-danger" role="alert">
                {{ error }}
            </p>
        {% endfor %}

表格编辑表格 此处

但它不工作。页面上有 "dd.mm.yyy--:--"。

请你给我解释一下,我到底做错了什么?

0
投票

你的 任务期限 只返回数据库中的值。我想是以dd.mm.yyy格式。请注意 format='%Y-%m-%dT%H:%M' 对默认数据不做任何处理。该模式用于检查输入数据。

task.deadline 值应该在表单中使用前正确重新格式化。

0
投票

所以,我已经解决了这个问题。

不使用 DateTimeField 并将该字段与 type="datetime-local",我用 DateTimeLocalFieldwtforms.field.html5. 而这实际上是工作!