我需要在django中重写url
当用户选择英语时,我需要将www.example.com/product/1网址重写为www.example.com/en/product/1。 (他会点击一个选择框来切换语言并设置一个名为'语言'的会话)我需要在django中重写url
我不能选择支持此功能的django 1.4。我们建议坚持使用django 1.3。
因此我尝试了一个中间件,但事实证明,中间件针对每个请求运行导致无限循环。
class urlrewrite():
def process_request(self, request):
if 'i' in request.session:
if request.session.get('i','') != 0:
print "session"
request.session['i'] = request.session['i'] + 1
else:
request.session['i'] = 0
else:
request.session['i'] = 0
print "request.session['i']", request.session['i']
if request.session.get('i','') == SOME_CONSTANT and request.session.get('django_language','') == 'en':
del request.session['i']
return HttpResponseRedirect("en/"+request.META['PATH_INFO'])
Ofcourse,它does not工作。这适用于每个请求。
请帮助我。
谢谢
不要自己写这个,用别人的努力工作。
先尝试django-cms的解决方案。
==== ====编辑
你并不需要使用Django的CMS,只是安装了它,并用自己的多语种网址中间件。这与django的常规国际化机械接口。
http://django-cms.readthedocs.org/en/2.3.3/advanced/i18n.html
嗨托马斯,我们做了大胆的升级到django 1.4这个现有项目的举措。请指导我使用django 1.4 – 2013-04-09 05:25:40
使用区域设置url的教程“要安装它,请在项目的MIDDLEWARE_CLASSES设置中包含'cms.middleware.multilingual.MultilingualURLMiddleware'。” 在页面上,我将你链接到的第一件事 – Thomas 2013-04-09 06:52:13
这个问题可以通过在你的urls.py
文件使用一个小窍门来解决,如在文档的这一部分:https://docs.djangoproject.com/en/1.4/ref/generic-views/#django-views-generic-simple-redirect-to。
你保持相同的看法,它会简单地拥有不同的网址。我认为这就是你想要的。确保你选择了文档的1.3版本,我相信已经有了一些变化。
*.com/questions/9923178/how-do-i-rewrite-this-url-in-django – catherine 2013-04-08 06:22:13