2013-07-23 2 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', 
         ) 

Возможно, вы увидите, что указанные выше два URL-адреса имеют большой фрагмент в формате.
Есть ли способ отличить их?DRY in django url

+0

Нельзя использовать только один из двух (id/slug) в URL-адресе, потому что они должны быть уникальными или, по крайней мере, один из них должен быть. – 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', 
) 
Смежные вопросы