我想知道是否可以将标准网址格式分布在多个文件中(在这种情况下是项目范围内的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'),
)
正如您所看到的,我有两个不同的应用都希望使用/ user / *的网址,因此我不能只使用包含的r'^user/'
。
我的问题是:我可以将上述内容分成两个单独的urls.py
文件,每个文件都会进入各自的应用程序吗?
注意:忽略任何语法错误,因为这是在
中输入的答案 0 :(得分:34)
不确定。 URL按顺序处理,两个包含可以具有相同的前缀 - 如果一个匹配不成功,处理将转移到下一个。
urlpatterns = patterns('',
url(r'^user/', include('registration.urls')),
url(r'^user/', include('profile.urls')),
)
答案 1 :(得分:5)
我还建议添加这样的命名空间:
urlpatterns = patterns('',
url(r'^user/', include('registration.urls', namespace="registration")),
url(r'^user/', include('profile.urls', namespace="profile")),
)