2013-04-08 86 views
0

當用戶選擇英語時,我需要將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工作。這適用於每個請求。

請幫助我。

謝謝

+1

stackoverflow.com/questions/9923178/how-do-i-rewrite-this-url-in-django – catherine 2013-04-08 06:22:13

回答

0

不要自己寫這個,用別人的努力工作。

先嚐試django-cms的解決方案。

==== ====編輯

你並不需要使用Django的CMS,只是安裝了它,並用自己的多語種網址中間件。這與django的常規國際化機械接口。

http://django-cms.readthedocs.org/en/2.3.3/advanced/i18n.html

+0

嗨托馬斯,我們做了大膽的升級到django 1.4這個現有項目的舉措。請指導我使用django 1.4 – 2013-04-09 05:25:40

+0

使用區域設置url的教程「要安裝它,請在項目的MIDDLEWARE_CLASSES設置中包含'cms.middleware.multilingual.MultilingualURLMiddleware'。」 在頁面上,我將你鏈接到的第一件事 – Thomas 2013-04-09 06:52:13