Как явно установить django_language на django сессии

Как явно установить django_language в Django сессия?

Большое спасибо...

16
задан Vladir Parrado Cruz 11 October 2015 в 15:22
поделиться

1 ответ

Если вы хотите, чтобы ваши пользователи могли указывать язык, убедитесь, что LocaleMiddleware включен:

MIDDLEWARE_CLASSES = (
   ...
   'django.middleware.locale.LocaleMiddleware',
   ...
)

Тогда Django будет искать языковые предпочтения пользователя в таком порядке (см. get_language_from_request в trans_real.py):

  1. in request. path_info, if i18n_patterns are used;
  2. request.session[settings.LANGUAGE_SESSION_KEY];
  3. request.COOKIES[settings. LANGUAGE_COOKIE_NAME];
  4. каждый язык в request.META['HTTP_ACCEPT_LANGUAGE'], пока не будет найден принятый;
  5. settings.LANGUAGE_CODE.

Поэтому самый простой способ явно установить язык в сессии Django - это переписать request.session[settings. LANGUAGE_SESSION_KEY]:

def someview (request):
    ...
    request.session[settings.LANGUAGE_SESSION_KEY] = 'en'
    ...
34
ответ дан 30 November 2019 в 15:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: