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') %}
答案 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')