2015-07-01 109 views
2

我在官方網站上製作了Django教程,目前我正在爲我們創建的示例輪詢應用程序提供setting up URLs避免重複使用Django的URL

截至目前,我polls/urls.py看起來是這樣的:

from django.conf.urls import url 

from . import views 

urlpatterns = [ 
    url(r'^$', views.index, name='index'), 
    url(r'^(?P<question_id>[0-9]+)/$', views.detail, name='detail'), 
    url(r'^(?P<question_id>[0-9]+)/results/$', views.results, name='results'), 
    url(r'^(?P<question_id>[0-9]+)/vote/$', views.votes, name='vote') 
] 

我不能不注意到的(?P<question_id>[0-9]+)重複,所以我不知道是否有避免這一點,除了提取到一個恆定的一個簡單的方法像QUESTION_PATTERN = (?P<question_id>[0-9]+)

回答

6

可以包括子模式的列表,像這樣:

urlpatterns = [ 
    url(r'^$', views.index, name='index'), 
    url(r'^(?P<question_id>[0-9]+)/', include([ 
     url(r'^$', views.detail, name='detail'), 
     url(r'^results/$', views.results, name='results'), 
     url(r'^vote/$', views.votes, name='vote'), 
    ]), 
] 
+1

這是非常光滑。 – dgel

+0

完美!這就是我一直在尋找的。 – FBidu