我正在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.deadline是datetime.datetime对象
这就是我在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 %}
form是这里的EditForm对象
但它不起作用。页面上有“dd.mm.yyyy-->”
你能解释一下我做错了什么吗
所以,我解决了这个问题
我没有使用DateTimeField并使用type=“datetime local”呈现此字段,而是使用wtforms.field.html5中的DateTimeLocalField。这确实有效
您的task.deadline只返回数据库中的值。 我想是dd.mm.yyyy格式。 请注意,格式=“%Y-%m-%dT%H:%m”对默认数据不做任何操作。此模式用于检查输入数据
task.deadline值在表单中使用之前应正确重新格式化
相关问题 更多 >
编程相关推荐