Шаблон URL Django с разными корнями - PullRequest
1 голос
/ 19 января 2011

У меня есть два шаблона URL, которые существуют в одном и том же приложении, над которым я работаю над настройкой.

Мне нужны URL-адреса, подобные следующим.

Однако оба они живут в одном приложении django.

Мой основной urls.py выглядит примерно так для обработки / p / 12345 URL.

urlpatterns = patterns('',

(r'^p/', include('myproject.myapp.urls')),
)

и мой urls.py для приложения похож. но это все еще только обрабатывает / p / 12345 URL.

urlpatterns = patterns('myproject.myapp.views',

(r'^(?P<object_id>\d+)/$', 'some_view'),
)

Моя проблема в том, что оба они почти идентичны, но имеют разные префиксы. Как я могу сделать это для URL-адресов / p / 12345 и / s / 12345. Я прочитал документацию, но не смог понять это. Я думал о «неаккуратных» способах сделать это с 2 файлами urls.py, но я знаю, что должен быть лучший способ.

1 Ответ

0 голосов
/ 19 января 2011

Вы можете включить файл URL с пустым шаблоном.Вы можете сделать это:

main urls.py

urlpatterns = patterns('',
    (r'foo/', 'foo_view'),
    (r'^', include('myproject.myapp.urls')),
)

app urls.py

urlpatterns = patterns('puzzlequest.pq.views',
    (r'^p/(?P<object_id>\d+)/$', 'some_view'),
    (r'^s/(?P<object_id>\d+)/$', 'other_view'),
)

Обратите внимание, что другие маршруты (например, foo/) должны прийтипервый.

...