[Django] #35142: DATE and DATETIME settings have no effect since USE_L10N was deprecated

18 views
Skip to first unread message

Django

unread,
Jan 25, 2024, 4:30:27 AM1/25/24
to django-...@googlegroups.com
#35142: DATE and DATETIME settings have no effect since USE_L10N was deprecated
-------------------------------------+-------------------------------------
Reporter: Paul | Owner: nobody
Type: Bug | Status: new
Component: | Version: 5.0
Uncategorized | Keywords: USE_L10N,
Severity: Normal | localization
Triage Stage: | Has patch: 0
Unreviewed |
Needs documentation: 0 | Needs tests: 0
Patch needs improvement: 0 | Easy pickings: 0
UI/UX: 0 |
-------------------------------------+-------------------------------------
Since 5.0 **USE_L10N** settings was DEPRECATED and is always True.

Now settings like **DATE_FORMAT**, **DATETIME_FORMAT**,
**DATE_FORMAT_INPUTS** etc.. don't work because as per documentation:
"Note that the locale-dictated format has higher precedence and will be
applied instead. But now locale-dictated formats are always enabled."
Now locale-dictated formats will always have higher precedence.

It alse breaks editing on all ModelForms which have date and datetime
fields because the input is expecting ISO format, but Django forcefully
localizes the value attribute to another format.

I've found a solution but overriding the formats.py file using the
**FORMAT_MODULE_PATH** setting. I think at least the documents should make
it clear you can do that.
--
Ticket URL: <https://code.djangoproject.com/ticket/35142>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

Django

unread,
Jan 25, 2024, 5:25:21 AM1/25/24
to django-...@googlegroups.com
#35142: DATE and DATETIME settings have no effect since USE_L10N was deprecated
-------------------------------------+-------------------------------------
Reporter: Paul | Owner: nobody
Type: | Status: closed
Cleanup/optimization |
Component: | Version: 5.0
Internationalization |
Severity: Normal | Resolution: needsinfo
Keywords: USE_L10N, | Triage Stage:
localization | Unreviewed
Has patch: 0 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Mariusz Felisiak):

* status: new => closed
* resolution: => needsinfo
* component: Uncategorized => Internationalization
* type: Bug => Cleanup/optimization

Comment:

> It alse breaks editing on all ModelForms which have date and datetime
fields because the input is expecting ISO format, but Django forcefully
localizes the value attribute to another format.

I don't think that it's true, can you provide a sample project that
reproduces your issue.

> I've found a solution but overriding the formats.py file using the

FORMAT_MODULE_PATH setting. I think at least the documents should make it


clear you can do that.

True, if you don't like formats provided for a language you're working
with, you can use `FORMAT_MODULE_PATH` to specify your own format
definitions. This setting is documented, I'm not sure what else are you
trying to propose.
--
Ticket URL: <https://code.djangoproject.com/ticket/35142#comment:1>

Django

unread,
Jan 25, 2024, 7:40:40 AM1/25/24
to django-...@googlegroups.com
#35142: DATE and DATETIME settings have no effect since USE_L10N was deprecated
-------------------------------------+-------------------------------------
Reporter: Paul | Owner: nobody
Type: | Status: closed
Cleanup/optimization |
Component: | Version: 5.0
Internationalization |
Severity: Normal | Resolution: needsinfo
Keywords: USE_L10N, | Triage Stage:
localization | Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Comment (by Paul):

> I don't think that it's true, can you provide a sample project that
reproduces your issue.

I've created a demo project at https://github.com/paulik123/django-demo-
l10n
Just create a demo object then click edit.

> True, if you don't like formats provided for a language you're working
with, you can use FORMAT_MODULE_PATH to specify your own format
definitions. This setting is documented, I'm not sure what else are you
trying to propose.

Yes, but not specifying that all format settings (DATE_FORMAT,
DATETIME_FORMAT etc) won't work if you just paste them settings.py seems
confusing to me. I think at least a note should be added saying that to
modify these settings you need to override formats.py


Replying to [comment:1 Mariusz Felisiak]:
--
Ticket URL: <https://code.djangoproject.com/ticket/35142#comment:2>

Django

unread,
Jan 25, 2024, 7:41:53 AM1/25/24
to django-...@googlegroups.com
#35142: DATE and DATETIME settings have no effect since USE_L10N was deprecated
-------------------------------------+-------------------------------------
Reporter: Paul | Owner: nobody
Type: | Status: closed
Cleanup/optimization |
Component: | Version: 5.0
Internationalization |
Severity: Normal | Resolution: needsinfo
Keywords: USE_L10N, | Triage Stage:
localization | Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Description changed by Paul:

Old description:

> Since 5.0 **USE_L10N** settings was DEPRECATED and is always True.
>
> Now settings like **DATE_FORMAT**, **DATETIME_FORMAT**,
> **DATE_FORMAT_INPUTS** etc.. don't work because as per documentation:
> "Note that the locale-dictated format has higher precedence and will be
> applied instead. But now locale-dictated formats are always enabled."
> Now locale-dictated formats will always have higher precedence.
>

> It alse breaks editing on all ModelForms which have date and datetime
> fields because the input is expecting ISO format, but Django forcefully
> localizes the value attribute to another format.
>

> I've found a solution but overriding the formats.py file using the

> **FORMAT_MODULE_PATH** setting. I think at least the documents should


> make it clear you can do that.

New description:

Since 5.0 **USE_L10N** settings was DEPRECATED and is always True.

Now settings like **DATE_FORMAT**, **DATETIME_FORMAT**,
**DATE_FORMAT_INPUTS** etc.. don't work because as per documentation:
"Note that the locale-dictated format has higher precedence and will be
applied instead. But now locale-dictated formats are always enabled."
Now locale-dictated formats will always have higher precedence.

It alse breaks editing on all ModelForms which have date and datetime


fields because the input is expecting ISO format, but Django forcefully
localizes the value attribute to another format.

I've found a solution but overriding the formats.py file using the
**FORMAT_MODULE_PATH** setting. I think at least the documents should make


it clear you can do that.

DEMO PROJECT: https://github.com/paulik123/django-demo-l10n

--
--
Ticket URL: <https://code.djangoproject.com/ticket/35142#comment:3>

Django

unread,
Mar 19, 2024, 8:05:32 AM3/19/24
to django-...@googlegroups.com
#35142: DATE and DATETIME settings have no effect since USE_L10N was deprecated
-------------------------------------+-------------------------------------
Reporter: Paul | Owner: nobody
Type: | Status: closed
Cleanup/optimization |
Component: | Version: 5.0
Internationalization |
Severity: Normal | Resolution: needsinfo
Keywords: USE_L10N, | Triage Stage:
localization | Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Natalia Bidart):

* cc: Claude Paroz (added)

Comment:

I missed this ticket yesterday when triaging #35306 but I think they are
the same issue (documentation could benefit from some explicitness).
--
Ticket URL: <https://code.djangoproject.com/ticket/35142#comment:4>
Reply all
Reply to author
Forward
0 new messages