2011-01-19 1 views
1

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

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

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

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

urlpatterns = patterns('', 

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

и мои urls.py для приложения аналогичны. но это все еще обрабатывает URL-адреса/p/12345.

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

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

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

ответ

0

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

главный urls.py

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

приложение urls.py

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

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

+2

Есть ли способ получить корневой путь, т. Е. 'Http: // www.example.com/', определенный в включенном URLconf, а не в корневой URL-адрес? Кажется, он не работает. – jmagnusson