我知道这听起来很愚蠢,但我找不到问题所在。我正在为用户身份验证使用内置视图,登录和注销分别将语言切换为当前会话的非默认语言。
我有两种语言,根据 Djangoproject 站点上的文档进行设置,即在语言环境文件夹中,并且有 .mo 文件和所有内容。美好的。
我有一个基于表单的语言切换,可以为发布到 /i18n/setlang 的任何用户启用语言切换
所以,我的问题是,当我注销或登录时(我猜这也是 POST 也是),为什么似乎“POST”来切换语言。
感谢您对此提供任何可能的信息。
编辑:我应该补充一点,它永远不会切换回来。它只在一个方向上切换语言,即非默认语言。
EDIT2:并不是说我认为它会吸引更多答案,但这是我的语言切换器的代码(它通过 jQuery 即时切换。问题仍然是它会转到 Deutch 语言并在我注销时停留在那里(注销由Django 中的注销视图)。
<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>