#36636 closed Bug (fixed)
Outdated documentation in set_language() references removed session-based language storage
| Reported by: | Samriddha Kumar Tripathi | Owned by: | Dani Fornons |
|---|---|---|---|
| Component: | Documentation | Version: | 5.2 |
| Severity: | Normal | Keywords: | |
| Cc: | Triage Stage: | Ready for checkin | |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | yes | UI/UX: | no |
Description
The documentation and docstring for django.views.i18n.set_language() contain outdated information about session-based language storage, which was deprecated in Django 3.0 and removed in Django 4.0.
Affected locations:
- Docstring in
django/views/i18n.py: Current text says: "Redirect to a given URL while setting the chosen language in the session (if enabled) and in a cookie."
- Documentation (i18n section): Current text says: "The view expects to be called via the POST method, with a language parameter set in request. If session support is enabled, the view saves the language choice in the user's session. It also saves the language choice in a cookie that is named django_language by default."
The issue:
The actual code in set_language() does NOT save the language to the session. According to the Django 3.0 release notes:
"To limit creation of sessions and hence favor some caching strategies, django.views.i18n.set_language() will stop setting the user's language in the session in Django 4.0. Since Django 2.1, the language is always stored in the LANGUAGE_COOKIE_NAME cookie."
Expected behavior:
Both the docstring and documentation should be updated to remove references to session storage and clarify that the language choice is stored only in the cookie (LANGUAGE_COOKIE_NAME, which defaults to django_language).
Credit: Issue reported by kid_alan_ on Discord.
Change History (7)
comment:1 by , 3 weeks ago
| Owner: | set to |
|---|---|
| Status: | new → assigned |
comment:2 by , 3 weeks ago
comment:3 by , 3 weeks ago
| Triage Stage: | Unreviewed → Accepted |
|---|
Thanks, looks like this was missed in d134b0b93ee10a2128c595997cbc6022c4a982f7.
comment:4 by , 3 weeks ago
| Triage Stage: | Accepted → Ready for checkin |
|---|
I’ve opened a PR with the proposed changes, treating it as a draft until the ticket is verified.