Opened 5 years ago
Last modified 5 years ago
#31595 closed Bug
models.Datefield being localized where it shouldn't — at Version 1
| 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 (last modified by )
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
Change History (3)
by , 5 years ago
| Attachment: | datepicker-chrome.png added |
|---|
comment:1 by , 5 years ago
| Description: | modified (diff) |
|---|
This is how date picker looks in chrome when locale is en-AU even when this field has an initials value.