2013-10-01 1 views
0

django (1.5)에서 몇 가지 카테고리/하위 카테고리 라우팅을 시도하고 있습니다. 카테고리에 대해 5 단계가 있는데, 그 모양은 다음과 같습니다.반복 그룹에 대한 django urlpattern?

url(r'^(?P<category>\w*)/$', SearchResults.as_view(), name='search_results'), 
url(r'^(?P<category>\w*)/(?P<sublevel1>\w*)/$', SearchResults.as_view(), name='search_results'), 
url(r'^(?P<category>\w*)/(?P<sublevel1>\w*)/(?P<sublevel2>\w*)/$', SearchResults.as_view(), name='search_results'), 
url(r'^(?P<category>\w*)/(?P<sublevel1>\w*)/(?P<sublevel2>\w*)/(?P<sublevel3>\w*)/$', SearchResults.as_view(), name='search_results'), 
url(r'^(?P<category>\w*)/(?P<sublevel1>\w*)/(?P<sublevel2>\w*)/(?P<sublevel3>\w*)/(?P<sublevel4>\w*)/$', SearchResults.as_view(), name='search_results'), 

하지만 더 좋은 방법이 있는지 궁금합니다. 반복 패턴 또는 유사하게 정규식이있는 것.

감사합니다.

+2

, 난 그렇게 생각하지 않습니다. – Jerry

+0

숫자도 괜찮습니다. – maazza

+0

짝수는 유지되지 않습니다. 나는'/'로 분리하는 것이 더 쉬울 것이라고 믿는다. – Jerry

답변

1

정규식 패턴의 경우 그룹 수는 "컴파일시 고정"입니다. 패턴의 n 반복과 일치하는 그룹을 만든 다음 캡처 한 후에 그룹을 분할해야합니다. 당신은 여전히 ​​명명 된 그룹을 유지하려면 당신은 당신의보기에서 다음 ^(?P<categories>(?:[\w]+\/?)+)$

같은 것을 사용해야합니다

,

categories = filter(bool, categories.split('/'))