Django:从根开始的多个url模式跨文件传播

时间:2012-07-23 18:15:29

标签: python django django-urls

我想知道是否可以将标准网址格式分布在多个文件中(在这种情况下是项目范围内的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文件,每个文件都会进入各自的应用程序吗?

注意:忽略任何语法错误,因为这是在

中输入的

2 个答案:

答案 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")),
)