通常在表单中定义 DateInput 小部件时,生成的 html 如下所示:
<input type="text" name="from_date" id="id_from_date">
类型是text
代替date
or datetime
。
解决此问题的一种方法是,将类型设置为__init__
:
class FilterCallsForm(Form):
def __init__(self, *args, **kwargs):
super(FilterCallsForm, self).__init__(*args, **kwargs)
self.fields['from_date'].widget.input_type = 'date'
from_date = forms.DateField(localize=True, widget=forms.DateInput())
这有效,我得到了一个<input type="date" name="from_date" id="id_from_date">
所需的。
但是,当我声明小部件时,有没有办法正确定义它?除了通过__init__
这似乎有点奇怪之外,我没有找到其他方法。