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