2013-06-25 3 views
0

Я использую следующие определения полой формы,Джанго forms.DateInput проверка

start_date = django.forms.DateField(
     label=_("Start date"), 
     initial=timezone.now().date(), 
     widget=django.forms.DateInput(format = '%Y/%m/%d')) 

end_date = django.forms.DateField(
     label=_("End date"), 
     initial=None, 
     required=False, 
     widget=django.forms.DateInput(format = '%Y/%m/%d')) 

Поскольку я установил начальную букву для start_date, она показывает на виде со значением по умолчанию, что-то вроде «2013/06/25" .

Если я просто нажмите на отправить, он сразу говорит мне эту ошибку:

Start date: Enter a valid date.

Это без меня даже делать что-нибудь! Как получается, что начальное значение, назначенное Forms в соответствии с предопределенным форматом, FAIL проверяет?!

ответ

0

Возможно, '%Y/%m/%d' нет в списке DateFieldinput_formats. Вы можете попытаться добавить его вот так:

start_date = django.forms.DateField(label=_("Start date"), 
            initial=timezone.now().date(), 
            input_formats=['%Y/%m/%d'], 
            widget=django.forms.DateInput(format = '%Y/%m/%d'), input_formats=('%Y/%m/%d')) 
end_date = django.forms.DateField(label=_("End date"), 
            initial=None, 
            required=False, 
            input_formats=['%Y/%m/%d'], 
            widget=django.forms.DateInput(format = '%Y/%m/%d'), input_formats=('%Y/%m/%d')) 

Надеюсь, это поможет!