如何在jinja2模板中显示日期时间字段? (烧瓶)

时间:2014-11-08 20:25:57

标签: python google-app-engine flask jinja2

我有一个包含这两个值的表单(ndb是Google App Engine ndb model):

模型:

class Appointment(model.Base):
    start_time = ndb.DateTimeProperty(required=True)
    end_time = ndb.DateTimeProperty(required=True)

表格(使用wtforms):

class AppointmentUpdateForm(wtf.Form):
    start_time = wtforms.DateField('Start at', [wtforms.validators.required()])
    end_time = wtforms.DateField('End at', [wtforms.validators.required()])

在jinja2模板中我有:

  {{forms.date_field(form.start_time, format='%Y-%m-%d %H:%M:%S')}}
  {{forms.date_field(form.end_time)}}

我想将表单输入显示为时间小部件,但它看起来像一个日期字段。我认为wtforms有一个date_time字段,但我该如何实现呢?

1 个答案:

答案 0 :(得分:4)

如果要显示日期时间窗口小部件,则需要创建自定义窗口小部件。在定义表单时 使用您自己的小部件传递小部件

对于小部件,请看一下这个例子:

https://github.com/dpgaspar/Flask-AppBuilder/blob/master/flask_appbuilder/fieldwidgets.py#L5

然后定义如下形式:

class AppointmentUpdateForm(wtf.Form):
    start_time = wtforms.DateField('Start at', [wtforms.validators.required()], widget=DatePickerWidget())
    end_time = wtforms.DateField('End at', [wtforms.validators.required()], widget=DatePickerWidget())

请记住,这是使用引导日期时间选择器,因此您必须包含CSS和js。

相关问题