2014-11-08 51 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。