python - Django datetimefield invalid for certain locales -


i don't have date input formats defined, form field is:

    expiry_date = forms.datetimefield(widget=selectdatewidget,                                       required=false) 

i'm using locales en (english) , zh-hans (simplified chinese).

according pycharm debugger, post values identical in either language:

self.request.post['expiry_date_day'] = u'25' self.request.post['expiry_date_month'] = u'9' self.request.post['expiry_date_year'] = u'2015' 

however error in zh-hans.

in form.clean() method self.cleaned_data['expiry_date'] value missing, i'm guessing it's being stripped out due failing previous validation error.

fixed:

i fixed adding following settings:

date_input_formats = ('%y-%m-%d', '%y/%m/%d') 

and apply specific datetimefield:

expiry_date = forms.datetimefield(widget=selectdatewidget,                                   input_formats=settings.date_input_formats,                                   required=false) 

specifically '%y-%m-%d' needed keep en happy, whilst '%y/%m/%d' allows zh-hans , zh-hant function correctly.

i found drilling down in debugger , figuring out value passing though datetimefield.to_python().

i'll leave question open though, i'd still understand exact why formatted differently locale, , if there's more obvious way figure out formats allow , when , don't think solution should "step-through debugger until find line of code!"


Comments

Popular posts from this blog

How has firefox/gecko HTML+CSS rendering changed in version 38? -

javascript - Complex json ng-repeat -

jquery - Cloning of rows and columns from the old table into the new with colSpan and rowSpan -