误解:
引用文档:
窗口小部件不应与表单字段混淆。表单字段处理输入验证的逻辑,并直接在模板中使用。窗口小部件处理HTML表单输入元素在网页上的呈现以及原始提交数据的提取。
小部件对验证没有影响。您为小部件提供了格式参数,但这并不意味着表单字段验证将使用它-它仅设置显示小部件内容的初始格式:
format :将显示该字段的初始值的格式。
解决方案
两种选择:
forms.DateTimeField
通过传递input_formats
参数,为表单字段()提供您要使用的日期时间格式class MyIdealDateForm(forms.ModelForm):start = forms.DateTimeField( input_formats = ['%Y-%m-%dT%H:%M'], widget = forms.DateTimeInput( attrs={ 'type': 'datetime-local', 'class': 'form-control'}, format='%Y-%m-%dT%H:%M'))
这需要针对每个表单字段(可能甚至扩展其小部件)进行。您在这里所做的实际上是覆盖设置(请参阅下一点)。
- 将日期时间格式添加到设置中作为第一项。这将全局应用于所有使用该设置的表单域和窗口小部件。



