在Django中设置PasswordResetForm的语言? [英] Set language of PasswordResetForm in Django?
本文介绍了在Django中设置PasswordResetForm的语言?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在手动重置密码,但想知道如何将语言设置为用户的语言,而不是我自己的语言.我看到有很多额外的上下文字段,但是需要设置哪一个?
I am manually resetting passwords but wonder how to set the language to the user's language instead of my own. I see there are many extra context fields but which one needs to be set?
for user in qs:
reset_form = PasswordResetForm({'email': user.email})
# reset_form.language?
assert reset_form.is_valid()
reset_form.save(request=request)
我添加了一个字段CustomUser.language
,该字段将在上方的user.language
中提供.
I have added a field CustomUser.language
which would be available in user.language
above.
(在表述我的问题并寻找可能性的同时,我找到了可行的解决方案.)
推荐答案
我通过将当前语言(按会话方式)临时设置为用户的语言,从而得出以下解决方案:
I came to the following solution, by setting the current language (session-wise) temporarily to the user's language:
from django.utils import translation
temp_language = translation.get_language_from_request(request)
for user in qs:
translation.activate(user.language)
request.LANGUAGE_CODE = translation.get_language()
reset_form = PasswordResetForm({'email': user.email})
assert reset_form.is_valid()
reset_form.save(request=request)
# https://stackoverflow.com/questions/2336785/set-language-within-a-django-view/2336889#comment12481631_2336889
translation.deactivate()
translation.activate(temp_language)
request.LANGUAGE_CODE = translation.get_language()
这篇关于在Django中设置PasswordResetForm的语言?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文