2013-05-03 79 views
0

我为url开发了一个带有i18n的Django应用程序。Django网址翻译 - 改变语言时留在同一页面

看起来非常好,但是当改变语言时,我想继续留在前一页。

这样做的最好方法是什么?

基本上得到新的网址我需要做一个reverse上一页的名称改变了语言并做了重定向后,但我怎么知道前一页的网址名?

编辑:

,从一个collegue传来一个解决方案:

计算使用request.resolver_match每种语言一个参数。 对于每种语言:activate(language) + reverse('{app_name}:{url_name}', args, kwargs)使用request.resolver_match元素

您是否看到更好的想法?你

回答

0

两个选项:

选项1

如果使用来自documentationform然后将带你带来你回到你的页面。

选项2

在改变,你可以使用网址标头,HTTP_REFERER,并重定向回您从

# Change the language 
# ... code ... 

# Redirect back to where we came from 
redirect_to = request.META.get('HTTP_REFERER', reverse('default-redirect-page')) 
return HttpResponseRedirect(redirect_to) 
+0

但作为URL来的地方语言改变了redirect_to的HTTP_REFERER将引发404或再次更改您的语言。 – Natim 2013-05-03 12:27:24