烧瓶wtf罐't设置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()

task是一个SQLAlchemy模型,task.datedlinedatetime.datetime对象。

这就是我在HTML:中渲染new_deadline字段的方式

{{ 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 %}

表单是此处的EditForm对象

但它不起作用。页面上有"dd.mm.yyyy-:--"。

你能向我解释一下我做错了什么吗?

您的任务。deadline只返回数据库中的值。我想是dd.mm.yyyy格式。请注意format='%Y-%m-%dT%H:%m'不处理默认数据。此模式用于检查输入数据。

任务.截止日期值在表单中使用之前应正确重新格式化。

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

我没有使用DateTimeField并使用type="datetime-local">渲染此字段,而是使用1wtforms.field.html5中的DateTimeLocalField.这实际上很有效!

最新更新