此代码有效,但填充的日期格式为 2000-08-08。日期选择器正在寻找 01-01-2000。
<form class="form form-inline" method="post" role="form">
{{ form.hidden_tag() }}
{{ wtf.form_errors(form) }}
<input data-provide="datepicker" format="mm/dd/yyyy" id="deadline" type="text" value="{{ form.deadline.data }}" name="deadline" required></input>
{{ wtf.form_field(form.complete) }}
{{ wtf.form_field(form.note) }}<br>
{{ wtf.form_field(form.submit) }}
</form>
我如何更改预填充的格式或日期选择器想要的格式? 在我的模型中我有
deadline =DateField( 'Deadline (mm/dd/yyyy)', format='%m/%d/%Y',validators = [Required()])
我可以在 View 中更改它吗?
@app.route('/edit/<name>', methods=['GET', 'POST'])
def edit_task(name):
ptask=models.Tasks.query.filter_by(task=task).first()
form = task_form(obj=ptask)
form.populate_obj(ptask)
tform=task_form(request.values)
更新
更改格式行,如
<input data-provide="datepicker" data-date-format="mm/dd/yyyy" id="deadline" type="text" value="{{ form.deadline.data }}" name="deadline" required></input>
没有效果,日期仍然呈现年/月/日
但是,将其添加到我的 View 中(如下建议)
ptask=models.Tasks.query.filter_by(task=task).first()
form = task_form(obj=ptask)
form.populate_obj(ptask)
form.deadline.data = ptask.deadline.strftime("%m/%d/%Y")
修复了它。 谢谢
最佳答案
对于 Bootstrap Datepicker,正确的日期格式属性是 data-date-format
,如 docs 中所述。 。更新了日期选择器的代码 –
<input data-provide="datepicker" data-date-format="mm/dd/yyyy" id="deadline" type="text" value="{{ form.deadline.data }}" name="deadline" required></input>
以上更正应该可以解决您的问题。但既然你问了,你也可以在 View 中设置所需的日期格式 -
form.deadline.data = ptask.deadline.strftime("%m/%d/%Y")
填充表单中的其余字段后,您可以在 View 代码的最后(或倒数第二)行插入此行。
关于python - 使用 jinja2 以 Flask wtf 形式预填充 Bootstrap 日期选择器日期字段格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23641575/