3

つまり、メインアプリケーションにインポートするかどうかからsocial_networks制御されるアプリがあります。settings.py

私が達成した方法は次のとおりです。

`from  social_networks import fb_settings`

`fb_settings.modify(globals())`

アプリとその機能のサポートを停止したい場合は、modify呼び出されないコードを手動でコメントアウトする必要があります。

fb_settings.pyappの一部であるmyで、新しい app を function に反映するようsocial_networksに を更新します。INSTALLED_APPSmodify

私はメインurls.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 に答える