Django Tempus Dominus:设置格式会使表单无效
Posted
技术标签:
【中文标题】Django Tempus Dominus:设置格式会使表单无效【英文标题】:Django Tempus Dominus: setting a format makes the form invalid 【发布时间】:2021-12-25 09:22:06 【问题描述】:我有一个非常简单的表格来提交日期。默认情况下,日期格式为 'yyyy-MM-dd' 并且表单有效。但是,一旦我将格式更改为任何内容(我尝试了 False 和“LL”),我就会在提交时收到一条错误消息:“输入有效日期”。所以看起来在提交时使用了默认格式,而不是我设置的格式。如何让首选格式正常工作?
这是表格:
class DateForm(forms.Form):
date_field = forms.DateField(
required=True,
label='The Date',
widget=DatePicker(
options=
'minDate': '1900-01-01',
'maxDate': '2050-12-31',
'format': 'LL',
,
),
initial='2001-01-01',
)
这是视图:
def date_input(request):
if request.method == 'POST':
form = DateForm(request.POST)
if form.is_valid():
the_date = form.cleaned_data['date_field']
print(the_date)
else:
form = DateForm()
return render(request, 'calculators/date-input.html',
'form': form,
)
【问题讨论】:
【参考方案1】:解决方案似乎是在包含小部件上指定格式的字段上使用input_formats
。在我的例子中,我在小部件上使用了'MMM D, YYYY'
和input_formats=['%b %d, %Y']
。
【讨论】:
以上是关于Django Tempus Dominus:设置格式会使表单无效的主要内容,如果未能解决你的问题,请参考以下文章
如何加载带有requirejs的Tempus Dominus Bootstrap 4(在Moodle中)? (错误:没有为datetimepicker定义调用)