Django网址 - 如果网址类似,哪个视图会首先显示?

时间:2016-05-31 14:39:29

标签: 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 个答案:

答案 0 :(得分:2)

Django总是按顺序匹配。由于[-\w]+匹配24-25-06-2016,因此将使用第一个模式。