我想忽略django国际化中的帖子形式。
我正在使用django-multilingual应用程序,所以我在db中有不同语言的不同字段。
我想出了这个想法:对于每种语言,从index.html页面,重定向到不同的URL(例如/ en /或/ de /或/ zh /)。并且这个网址的每个视图都按照这样的语言设置会话:
def set_lang_en(request):
request.session['django_language'] = 'en'
render_to_response("home.html")
def set_lang_zh(request):
request.session['django_language'] = 'zh-cn'
render_to_response("home.html")
有趣的是,这可以完成这项工作,但是如果我在重定向(home.html)后再次刷新页面。
为什么会这样?如何在我的方向或其他方向解决这个问题?
答案 0 :(得分:1)
multilingual.middleware 在您在视图中设置之前很久就会从会话中读取语言代码。您可以再次在视图中更改语言:
from multilingual.languages import set_default_language
set_default_language('en')
或者,如果您只想摆脱方法帖子,请不要在视图中呈现主页模板,而是设置cookie并重定向用户。