3

我有social_networks一个受控的应用程序,settings.py即是否将其导入主应用程序。

我实现的方式是:

`from  social_networks import fb_settings`

`fb_settings.modify(globals())`

如果我想停止对应用程序及其功能的支持,我必须手动注释掉modify不会被调用的代码。

在我作为应用程序fb_settings.py的一部分的social_networks应用程序中,我更新了INSTALLED_APPS以反映新应用程序的modify功能。

我有 mainurls.py我有include('social_networks.urls'),但我想让它更加模块化,以便在未安装应用程序时不包括在内。目前我正在检查settings.INSTALLED_APPS变量以检查应用程序是否存在并基于它include('social_networks.urls')

这是做事的正确方法django还是我错过了可以帮助我的 django 已经可用的东西?

4

1 回答 1

4

我认为这是一个好方法(你已经提到过):

# define necessary urls of your app which should always be present
urlpatterns = patterns('',
    url(r'^$', 'myapp.views.home', name='home'),
)

# then add urls of external apps if the app is present in INSTALLED_APPS
if 'social_networks' in settings.INSTALLED_APPS:
    urlpatterns += patterns('',
        url(r'^social/', include('social_networks.urls')),
    )
于 2013-03-27T18:35:19.677 回答