django - Django Tempus Dominus:设置格式会使表单无效
问题描述
我有一个非常简单的表格来提交日期。默认情况下,日期格式为 '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,
})
解决方案
解决方案似乎是input_formats
在包含小部件上指定的格式的字段上使用。就我而言,我'MMM D, YYYY'
在小部件和input_formats=['%b %d, %Y']
.
推荐阅读
- python - 使用 Pandas 丢失数据结构
- python - 将给定的 unix 时间戳转换为可读格式
- java - 如何从 ResponseEntity 中删除重复的对象
在java中 - c# - 在“越界”右侧编辑内容时,水平滚动条会弹回左侧
- javascript - 调整网页大小以适应手机
- tensorflow - 使用 RTX 2080 ti 的 Ubuntu 18.04 中的分段错误(核心转储)
- java - 如何在 selenium webdriver java 中使用 css 选择器定位元素?
- mysql - 从 mySQL 中选择 CURDATE()
- google-apps-script - 使用 Google Apps 脚本中的高级服务指定 API 版本?
- excel - Excel 用户表单偶尔不会在电子表格中输入数据