2014-11-08 53 views
1

我有这两个值(NDB是谷歌应用程序引擎ndb model)的一种形式:如何在jinja2模板中显示date_time字段? (瓶)

型号:

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字段,但我怎么能实现呢?

+0

你的意思是wtforms.DateTimeField不做你想要的吗? – Greg 2014-11-08 20:37:47

+1

我想要正确显示并在模板中显示它 – Kash 2014-11-08 20:45:00

+0

也许我不清楚。您的表单类正在使用DateField,而不是DateTimeField。 – Greg 2014-11-08 21:05:31

回答

2

如果你想显示一个日期时间小部件,你需要创建一个自定义小部件。定义形式 时传递部件为它用自己的小部件

如何将小工具,看看这个例子:

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。