15
class Form(Form):
      plan_start = DateField('Plan Start', validators=[Required()]) 

此代码将呈现此 html。

<input id="plan_start" name="plan_start" type="text" value="">

我的问题是:为什么类型是text而不是date

我只能通过显式传递type='date'in 模板来解决这个问题。

 {% raw form.plan_start.label %}{% raw form.plan_start(type='date') %}
4

3 回答 3

30

您可以使用 html5 中的 DateField。

from wtforms.fields.html5 import DateField


class Form(Form):
    plan_start = DateField('Plan Start', validators=[Required()])
于 2013-11-03T23:48:44.523 回答
0

尝试创建一个自定义小部件:

from django.forms import widgets

class CustomDateInput(widgets.TextInput):
    input_type = 'date'

class Form(Form):
    plan_start = DateField('Plan Start', validators=[Required()], widget=CustomDateInput) 
于 2013-10-25T13:03:03.260 回答
0

要获取类型为日期而不是文本,您还需要传递格式选项,如下所示

password = DateField('Your Date of Birth', validators=[DataRequired()], format='%Y-%m-%d')
于 2019-06-13T12:24:02.923 回答