Opened 5 years ago
Last modified 5 years ago
#31595 closed Bug
models.Datefield being localized where it shouldn't — at Initial Version
Reported by: | Akshay Salunke | Owned by: | nobody |
---|---|---|---|
Component: | Internationalization | Version: | 2.2 |
Severity: | Normal | Keywords: | DateField, chrome, date, format |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
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
This is how date picker looks in chrome when locale is en-AU even when this field has an initials value.