如何在Django 1.9中为同一个应用程序提供单独的URL

时间:2015-12-19 14:42:25

标签: django

我有一个应用程序将有2种网址,其中一种将包含在其他应用程序中,其中一种将包含在设置应用程序中。我希望有一种方法只包含部分网址而不为其创建单独的文件。

# records app -- urls.py
urlpatterns = [
    url(r'^create/$', RecordCreate.as_view(), name="record-create"),
    url(r'^(?P<pk>\d+)/update/$', RecordUpdate.as_view(), name="record-update"),
    url(r'^(?P<pk>\d+)/delete/$', RecordDelete.as_view(), name="record-delete"),
]


urlpatterns_types = [
    url(r'^$', RecordTypeList.as_view(), name="record-type-list"),
    url(r'^(?P<pk>\d+)/$', RecordTypeDetail.as_view(), name="record-type-detail"),
    url(r'^create/$', RecordTypeCreate.as_view(), name="record-type-create"),
    url(r'^(?P<pk>\d+)/update/$', RecordTypeUpdate.as_view(), name="record-type-update"),
    url(r'^(?P<pk>\d+)/delete/$', RecordTypeDelete.as_view(), name="record-type-delete"),
]

现在在设置应用中,我想只包含urlpatterns_types个网址。但是我试着把它们包括在内,但我不能

我发现创建单独文件然后将它们作为模块包含的唯一方法

以下是预期结果的示例

# player app -- urls.py

from django.conf.urls import patterns, include, url
from .views import *

urlpatterns = [

    # Records App Urls
    url(r'^(?P<player_id>\d+)/records/', include('records.urls')),
]



# settings app -- urls.py

from django.conf.urls import patterns, include, url
from .views import *

urlpatterns = [

    # Records App Urls
    url(r'^(?P<player_id>\d+)/records/', include('records.urls.urlpatterns_types')),
]

项目树

-- soccer_game
    -- soccer_game
        -- settings.py
        -- urls.py

    -- players
        -- models.py
        -- urls.py
        -- views.py

    -- main_settings
        -- models.py
        -- urls.py
        -- views.py

1 个答案:

答案 0 :(得分:4)

您可以导入模块并传递网址列表:

# settings app -- urls.py

from django.conf.urls import patterns, include, url
from records import urls as records_urls
from .views import *

urlpatterns = [
    # Records App Urls
    url(r'^(?P<player_id>\d+)/records/', include(records_urls.urlpatterns_types)),
]