Подтвердить что ты не робот

Django: несколько шаблонов url, начиная с корневого распространения через файлы

Мне интересно, можно ли использовать стандартные шаблоны url для нескольких файлов (в данном случае для всего проекта urls.py и нескольких приложений urls.py).

Представьте, что проект urls.py выглядит так (получило это действие):

from django.conf.urls import patterns, include, url
admin.autodiscover()

urlpatterns = patterns('',
    url(r'^user/signup/', 'registration.views.signup'),
    url(r'^user/confirm/(?P<code>\w{20})/', 'registration.views.confirm'),
    url(r'^user/profile/(\d+)/', 'profile.views.show'),
    url(r'^user/profile/edit/', 'profile.views.edit'), 
)

Как вы можете видеть, у меня есть два разных приложения, которые хотят, чтобы пользователь использовал URL для /user/ *, поэтому я не могу просто использовать r'^user/' с include.

Мой вопрос: могу ли я разделить это на два отдельных файла urls.py, каждый из которых входит в соответствующее приложение?

Примечание: игнорируйте любые синтаксические ошибки, поскольку это было напечатано в

4b9b3361

Ответ 1

Конечно. URL-адреса обрабатываются по порядку, а два варианта могут иметь один и тот же префикс - если не удается выполнить сопоставление, обработка просто перейдет к следующему.

urlpatterns = patterns('',
    url(r'^user/', include('registration.urls')),
    url(r'^user/', include('profile.urls')),
)

Ответ 2

Также я предлагаю добавить пространство имен следующим образом:

urlpatterns = patterns('',
    url(r'^user/', include('registration.urls', namespace="registration")),
    url(r'^user/', include('profile.urls', namespace="profile")),
)