Django - хранит язык пользователя в базе данных - PullRequest
0 голосов
/ 28 декабря 2018

Я могу изменить язык пользователя с помощью встроенной функции django

path('i18n/', include('django.conf.urls.i18n')),

Чтобы отправить электронное письмо пользователю, переведенному на его язык, я хочу знать активированный языкпользователь.

Как я могу сохранить язык в дБ?

Есть ли другой способ узнать язык?

Это сеанс:

from django.utils import translation
request.session[translation.LANGUAGE_SESSION_KEY]

1 Ответ

0 голосов
/ 28 декабря 2018

Сохранение языкового предпочтения в базе данных - это издержки, которых вы можете избежать, используя инструменты, которые предлагает Django.

django.utils.translation.get_language, возвращает язык, используемый в текущем потоке.

Как задокументировано в Django , это пример:

from django.utils import translation

def welcome_translated(language):
    cur_language = translation.get_language()
    try:
        translation.activate(language)
        text = translation.gettext('welcome')
    finally:
        translation.activate(cur_language)
    return text

Вы также можете использовать django.utils.translation.get_language_from_request для анализа запроса, чтобы найти, чтоязык, который пользователь хочет, чтобы система показывала, как объяснено в этом ответе .

Однако убедитесь, что у вас правильно setup Django .

Марина Меле написала учебник , который вы можете проверить для второй точки зрения.

...