gpt4 book ai didi

Django - 在数据库中存储用户的语言

转载 作者:行者123 更新时间:2023-12-04 17:42:10 24 4
gpt4 key购买 nike

我可以用django的内置函数改变用户的语言

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

为了向用他的语言翻译的用户发送电子邮件,我想知道用户的激活语言。

如何保存数据库的语言?

还有其他了解语言的方法吗?

这是 session :

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

最佳答案

在您的 User 模型中,您需要添加一个新字段:

    interface_language = models.CharField(max_length=10, blank=True)

然后你需要像这样创建中间件:

from django.utils import translation

def language_middleware(get_response):
def middleware(request):
user = getattr(request, 'user', None)
if user is not None and user.is_authenticated:
translation.activate(user.interface_language)
response = get_response(request)
translation.deactivate()
return response
return middleware

中间件需要在django.contrib.auth.middleware.AuthenticationMiddleware之后添加到你的设置中:

MIDDLEWARE = [
# ...
'django.contrib.auth.middleware.AuthenticaitonMiddleware',
'language_middleware',
# ...
]

或者,您也可以使用 Pypi 包,例如 django-user-language-middleware .

关于Django - 在数据库中存储用户的语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53962200/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com