mirror of
https://github.com/django/django.git
synced 2025-10-31 09:41:08 +00:00
Fixed #5789 -- Changed LocaleMiddleware session variable to '_language'.
The old 'django_language' variable will still be read from in order to migrate users. The backwards-compatability shim will be removed in Django 1.8. Thanks to jdunck for the report and stugots for the initial patch.
This commit is contained in:
committed by
Tim Graham
parent
8e2029f8dd
commit
0d0f4f020a
@@ -56,8 +56,14 @@ class LocaleMiddleware(object):
|
||||
return self.response_redirect_class(language_url)
|
||||
|
||||
# Store language back into session if it is not present
|
||||
if hasattr(request, 'session'):
|
||||
request.session.setdefault('django_language', language)
|
||||
if hasattr(request, 'session') and '_language' not in request.session:
|
||||
# Backwards compatibility check on django_language (remove in 1.8);
|
||||
# revert to: `request.session.setdefault('_language', language)`.
|
||||
if 'django_language' in request.session:
|
||||
request.session['_language'] = request.session['django_language']
|
||||
del request.session['django_language']
|
||||
else:
|
||||
request.session['_language'] = language
|
||||
|
||||
if not (self.is_language_prefix_patterns_used()
|
||||
and language_from_path):
|
||||
|
||||
@@ -426,7 +426,8 @@ def get_language_from_request(request, check_path=False):
|
||||
return lang_code
|
||||
|
||||
if hasattr(request, 'session'):
|
||||
lang_code = request.session.get('django_language', None)
|
||||
# for backwards compatibility django_language is also checked (remove in 1.8)
|
||||
lang_code = request.session.get('_language', request.session.get('django_language'))
|
||||
if lang_code in supported and lang_code is not None and check_for_language(lang_code):
|
||||
return lang_code
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ def set_language(request):
|
||||
lang_code = request.POST.get('language', None)
|
||||
if lang_code and check_for_language(lang_code):
|
||||
if hasattr(request, 'session'):
|
||||
request.session['django_language'] = lang_code
|
||||
request.session['_language'] = lang_code
|
||||
else:
|
||||
response.set_cookie(settings.LANGUAGE_COOKIE_NAME, lang_code)
|
||||
return response
|
||||
|
||||
Reference in New Issue
Block a user