#36636: Outdated documentation in set_language() references removed session-based
language storage
-------------------------------------+-------------------------------------
Reporter: Samriddha Kumar | Type: Bug
Tripathi | Component:
Status: new | Documentation
Version: 5.2 | Severity: Normal
Keywords: | Triage Stage:
| Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 1 | UI/UX: 0
-------------------------------------+-------------------------------------
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:**
1. **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."
2. **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.
--
Ticket URL: <
https://code.djangoproject.com/ticket/36636>
Django <
https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.