2016-05-31 25 views
-1

我的URL:Django網址 - 如果網址類似,哪個視圖會首先顯示?

/測試/ 1/24-25-06-2016/

url(r'^test/(?P<item>\w+)/(?P<added>[-\w]+)/$', ItemView.as_view(), name='item'), 
url(r'^test/(?P<item>\w+)/24-25-06-2016/$', ItemViewOther.as_view(), name='item-other'), 

views.py

class ItemView(FormView): 
    def dispatch(self, request, *args, **kwargs): 
     if not int(self.kwargs['item']) in [1, 2, 3]: 
      raise Http404 
     if not self.kwargs['added'] in [ 
      '20-21-06-2016', 
      '22-23-06-2016', 
     ]: 
      raise Http404 

爲什麼我得到404?它應該返回ItemViewOther我認爲。

+1

尋求調試幫助的問題(「爲什麼這個代碼不工作?」)必須包含所需的行爲,特定的問題或錯誤,以及在問題本身中重現問題所需的最短代碼。沒有明確問題陳述的問題對其他讀者無益。請參閱:[mcve] – Sayse

回答

2

Django總是按順序匹配。由於[-\w]+匹配24-25-06-2016,將使用第一個模式。

+0

我該如何解決這個問題?所以這個URL'/ test/1/24-25-06-2016 /'應該返回'ItemViewOther' –

+0

然後把它放在第一位。 –