Мне нужно установить язык для пользователя в 2 случаях:
- Пользователь входит в систему (django проверяет его поле UserProfile на наличие значения поля языка и устанавливает правильный язык)
- Пользователи изменяютсяlang на странице "Пользовательские настройки".
Я пробовал с приемником сигнала "user_logged_in"
from django.utils import translation
from django.dispatch import receiver
from django.contrib.auth.signals import user_logged_in
@receiver(user_logged_in)
def setlang(sender, **kwargs):
translation.activate(kwargs['user'].get_profile().language)
kwargs['request'].session['django_language'] = translation.get_language()
Это работает нормально, пока я не перезапущу свой экземпляр django.Несмотря на то, что сессия жива (не нужно снова входить в систему), веб-сайт отображается на языке, указанном в настройках.