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
, каждый из которых входит в соответствующее приложение?
Примечание: игнорируйте любые синтаксические ошибки, поскольку это было напечатано в
Ответы
Ответ 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")),
)