Django URL翻译-更改语言时保持在同一页面上
我还开发了一个Django应用程序,其中包含用于URL的i18n 这看起来真的很好,但是当我改变语言时,我想保持在原来的页面上 最好的方法是什么 基本上,为了获得新的url,我需要在更改语言后对上一页的名称执行Django URL翻译-更改语言时保持在同一页面上,django,internationalization,django-urls,Django,Internationalization,Django Urls,我还开发了一个Django应用程序,其中包含用于URL的i18n 这看起来真的很好,但是当我改变语言时,我想保持在原来的页面上 最好的方法是什么 基本上,为了获得新的url,我需要在更改语言后对上一页的名称执行反向操作,并执行重定向,但我如何知道上一页的url名称 编辑: 来自学院的解决方案: 使用request.resolver\u match为每种语言计算下一个参数。 对于每种语言:activate(language)+reverse({app\u name}:{url\u name}',a
反向操作
,并执行重定向,但我如何知道上一页的url名称
编辑:
来自学院的解决方案:
使用request.resolver\u match为每种语言计算下一个参数。
对于每种语言:activate(language)+reverse({app\u name}:{url\u name}',args,kwargs)
using request.resolver\u match元素
你认为有更好的主意吗?有两个选项供你选择:
选项1
如果您使用来自的表单
,则会将您带回您所在的页面
选项2
更改语言时,您可以使用REFERER头,HTTP\u 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)
但是随着URL的更改,重定向到HTTP的REFERER将引发404或再次更改您的语言。因为文档更改了选项1的链接。