Django:/logout 切换语言

标签 django django-authentication

我知道这听起来很愚蠢,但我找不到问题所在。 我使用内置 View 进行用户身份验证,登录和注销分别将语言切换为当前 session 的非默认语言。

我有两种语言,根据 Djangoproject 站点上的文档进行设置,即在 locale 文件夹中,并且有 .mo 文件和所有内容。很好。

我有一个基于表单的语言切换,可以为发布到/i18n/setlang 的任何用户启用语言切换

所以,我的问题是,当我注销或登录时(我猜这也是 POST),为什么它似乎是“POST”来切换语言。

感谢您对此提供任何可能的线索。

编辑:我应该补充一点,它永远不会切换回来。它仅在一个方向上切换语言,即切换到非默认语言。

EDIT2:并不是说我认为它会吸引更多的答案,但这是我的语言切换器的代码(它通过 jQuery 动态切换。问题仍然是它会转到德语,并在我注销时保持在那里(注销)由 Django 中的注销 View 处理)。

<ul>            
    <li>
        <form name="setLangen" action="/i18n/setlang/" method="POST"><div style='display:none'><input type='hidden' name='csrfmiddlewaretoken' value='871Y71JyfG9WcieiKr8jjwe4j37IkIfq' /></div>
        <input name="next" type="hidden" value="/" />
        <input type="hidden" name="language" value="en" />
        <a href="#" onclick="document.setLangen.submit();return false;">English</a>
        </form>
    </li>

    <li>
        <form name="setLangde" action="/i18n/setlang/" method="POST"><div style='display:none'><input type='hidden' name='csrfmiddlewaretoken' value='871Y71JyfG9WcieiKr8jjwe4j37IkIfq' /></div>
        <input name="next" type="hidden" value="/" />
        <input type="hidden" name="language" value="de" />
        <a href="#" onclick="document.setLangde.submit();return false;">Deutch</a>
        </form>
    </li>

</ul>

最佳答案

我猜你会在 session 中保留语言设置,当用户注销时, session 就会消失,你会回到默认语言。

关于Django:/logout 切换语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10542741/

相关文章:

Django:在模板中渲染 ModelChoiceField 和 ChoiceField 的显示值

django - 使用自定义 AuthenticationForm 覆盖 Django LoginView 错误消息

python - 使用 php 格式的函数 password_hash() 的 Django 密码哈希器

django - 将 AtlassianOAuth2 与 Django 一起使用时,在回调 URI 时获取 "AuthStateMissing ... Session value state missing."

django - 在 base.html (django) 中显示登录用户

python - 图像未使用 django 上传到 AWS S3

Django模板错误: Could not parse the remainder: ',' from 'uid,' ?

Pythonanywhere - 导入错误 : No module named 'myapp.settings'

python - Okta 身份验证 Django

python - Django : how to give user/group permission to view model instances for a specified period of time