DateField未呈现为type =“date”

时间:2013-10-25 11:19:53

标签: python tornado wtforms

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'来解决此问题。

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

3 个答案:

答案 0 :(得分:14)

您可以使用html5中的DateField。

from wtforms.fields.html5 import DateField


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

答案 1 :(得分: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) 

答案 2 :(得分:0)

要获取类型而不是文本作为日期,您还需要像下面一样传递格式选项

password = DateField('Your Date of Birth', validators=[DataRequired()], format='%Y-%m-%d')