models.Datefield being localized where it shouldn't

22 views
Skip to first unread message

Akshay Salunke

unread,
May 16, 2020, 3:06:58 PM5/16/20
to Django users
So, I have a DateField in my model and have also set I18N & L10N to `True`  in settings. When a browser running `en-AU` locale visits the website, Django tries to parse the value read from model, using the first value in `DATE_INPUT_FORMATS` from /conf.

The bug is when a user in `en-AU` locale visits the website, Django reads the Datefield value from model and tries to localize it for `en-AU` locale (from `DATE_INPUT_FORMATS` in /conf/en_AU) to this format `'%d/%m/%Y'`, but html5 requires the `value` for `<input type="date">` to be explicitly in this format: yyyy-MM-dd. [ref](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/date) [ref2](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats#Format_of_a_valid_date_string).

This causes an error in chrome dev console and the HTML date field rendered without the date read from the model.


**This bug goes away when I disable L10N in settings. I am able to reproduce this bug in `en-AU` and `en-GB`**

Do you guys think this is a bug, or me doing something wrong?
Reply all
Reply to author
Forward
0 new messages