2013-07-23 55 views
0
    url(r'^category/(?P<id>\d+)/(?P<slug>.+)/$', 
         views.readers.category, 
         name='category', 
         ), 

        url(r'^category/(?P<id>\d+)/(?P<slug>.+)/guide/$', 
         views.readers.category_guide, 
         name='category_guide', 
         ) 

你可能會看到上述兩個網址共享大塊的格式。
有沒有一種很好的方法來分解它們?DRY在Django的網址

+0

你不能在url中使用兩個(id/slug)中的一個,因爲它們應該是唯一的,或者至少應該是其中的一個。 – Charl

回答

0

正則表達式只是一個字符串,所以你可以提取基本字符串並追加你所需要的。

base = r'^category/(?P<id>\d+)/(?P<slug>.+)/' 

url(base + '$', 
    views.readers.category, 
    name='category', 
), 

url(base + 'guide/$', 
    views.readers.category_guide, 
    name='category_guide', 
)