繁体   English   中英

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

[英]How to have separate urls for the same app in Django 1.9

我有一个应用程序,将有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

您可以导入模块并传递URL本身列表:

# 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)),
]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM