2013-05-03 81 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