【问题标题】:How to display a date_time field in jinja2 template? (flask)如何在 jinja2 模板中显示日期时间字段? (烧瓶)
【发布时间】:2015-01-05 10:52:24
【问题描述】:

我有一个包含这两个值的表单(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 字段,但我该如何实现呢?

【问题讨论】:

  • 你的意思是 wtforms.DateTimeField 没有做你想做的事吗?
  • 我想在模板中正确显示和渲染
  • 也许我不清楚。您的表单类使用的是 DateField,而不是 DateTimeField。

标签: python google-app-engine flask jinja2


【解决方案1】:

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

到小部件,看看这个例子:

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。

【讨论】:

    猜你喜欢
    • 2017-11-20
    • 2011-11-10
    • 2021-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多