多语言网站的 Django 重定向
Posted
技术标签:
【中文标题】多语言网站的 Django 重定向【英文标题】:Django redirect for multilingual website 【发布时间】:2016-05-17 09:26:18 【问题描述】:我正在开发一个法语和英语双语网站,我正在尝试弄清楚如何检测法语用户并将其重定向到 index_fr.html(在模板文件夹中)。
我的 urls.py(它现在只显示英文版):
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^$', profiles.views.home, name='home'),
]
【问题讨论】:
您希望为法国用户更改 URL 还是仅更改模板?你启用LocaleMiddleware
了吗?如果是这样,您的 request
对象有一个 request.LANGUAGE_CODE
属性,您可以在视图中检查。
或者只是在您的所有网址中添加一个“^(感谢您的回复。
正如 dhke 所说,我启用了 LocalMiddleware 并使用 request.LANGUAGE_CODE 在 views.py 中编写了一个函数,该函数根据语言呈现模板并且它可以工作!:
views.py:
from django.http import HttpResponse
def home(request):
context=
if request.LANGUAGE_CODE == 'fr':
template='index_fr.html'
else:
template='index_en.html'
return render(request,template,context)
def fr(request):
context=
template='index_fr.html'
return render(request,template,context)
def all(request):
context=
template='index_en.html'
return render(request,template,context)
urls.py:
urlpatterns =[
url(r'^admin/', admin.site.urls),
url(r'^$', profiles.views.home, name='home'),
url(r'^index_fr.html', profiles.views.fr, name='fr'),
url(r'^index_en.html', profiles.views.all, name='all'),
]
【讨论】:
以上是关于多语言网站的 Django 重定向的主要内容,如果未能解决你的问题,请参考以下文章