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']
.