我可以使用两个名称不同的urls.py吗?

Ham*_*ner 2 django django-urls django-cms

在Django中,是否有可能有两个不同的url模式文件,这两个文件都没有被调用urls.py?或者Django是否依赖于每个Django app只有一组url模式,并且必须调用它urls.py

我正在使用Django CMS,我希望将应用程序拆分为两个apphooks和两个菜单.所以,我已经试过分裂urls.pypub_urls.pytrain_urls.py,但我似乎通过这样做,有破事,尽管cms_app.py命名正确的URL -例如:

from cms.app_base import CMSApp
from cms.apphook_pool import apphook_pool
from django.utils.translation import ugettext_lazy as _
from resources.menu import TrainingMenu, PublicationMenu

class PublicationApp(CMSApp):
    name = _("Publication App") # give your app a name, this is required
    urls = ["resources.pub_urls"] # link your app to url configuration(s)
    menus = [PublicationMenu]

class TrainingApp(CMSApp):
    name = _("Training App") # give your app a name, this is required
    urls = ["resources.train_urls"] # link your app to url configuration(s)
    menus = [TrainingMenu]

apphook_pool.register(PublicationApp) # register your app
apphook_pool.register(TrainingApp) # register your app
Run Code Online (Sandbox Code Playgroud)

这样的事情可能吗?或者我必须将其拆分为两个不同的应用程序?

Ste*_*yne 7

没有什么可以阻止你urls.py简单地作为包含多个其他url文件的方式:

urls.py:

from django.conf.urls.defaults import patterns, include   
urlpatterns = urlpatterns + patterns('',
                                         (r'^', include('pub_urls')),
                                         (r'^', include('train_urls')))
Run Code Online (Sandbox Code Playgroud)

pub_urls.py:

from django.conf.urls.defaults import patterns, url

urlpatterns = patterns('',
    (r'^$', 'homeview'),
    (r'^stuff/$', 'stuffview')
)
Run Code Online (Sandbox Code Playgroud)

等等

ROOT_URLCONF 在您的设置文件中指向根URL文件.