Django的:多个URL模式开始在整个文件的根蔓延(Django: Multiple url pa

2019-06-26 12:04发布

我想知道是否有可能有多个文件传播标准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'), 
)

正如你所看到的,我有两个不同的应用程序,既要为用户/用户/ *,所以我不能只使用网址, r'^user/'与包括。

我的问题是:我可以分裂到上述两个不同的urls.py文件,每一个进入各自的应用程序?

注:不考虑任何语法错误,因为这是在输入

Answer 1:

当然。 网址是按顺序处理,和两个包括可以有相同的前缀 - 如果不匹配成功,处理将继续前进到下一个。

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


Answer 2:

此外,我建议增加一个命名空间是这样的:

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


文章来源: Django: Multiple url patterns starting at the root spread across files