2016-09-16 3 views
1

私はDjangoプロジェクトを持っています。私はINSTALLED_APPSにアプリを追加するか、別のpythonスクリプトを使ってテンプレートの設定を変更する必要があります。それをする最善の方法は何ですか?プログラムでDjango設定を変更します

私にはいくつかのアイデアがあります。

  • settings.pyをPythonのテキストファイルとして開き、それを変更します。車輪の再建と思われ、多くのエラー(エスケープなど)でボックスを開きます。
  • astのようなPythonモジュールを使用しますが、それはかなり低いレベルであり、読み込みアクセスのためにはかなりです(データを書き戻す必要があります)。
  • いくつかのDjangoツールを使用します(このツールが存在するかどうかはわかりません)。

これを行うにはどうすればよいですか?

PS:Parse a .py file, read the AST, modify it, then write back the modified source codeは関連していますが、Django固有のものではなく、かなり古いものです。

+2

設定を変更して、達成したいことを説明できますか? –

+0

これに追加するだけではなく、コード全体で参照したり、存在しないケースを処理したりする必要があります。単にそれをやってはいけません、あなたはそれが通常のアプリケーションのインポートが必要な場合 – Sayse

答えて

0

より良い(より安全でクリーンな意味)アプローチは、Pythonモジュールを生成して、それをsettings.pyで使用することです。 additional_settings.py、たとえば、として保存

ADDITIONAL_APPS = [ 
    'foo', 
    'bar', 
] 

とsettings.pyと同じディレクトリに入れ、その後、settings.pyに行

を追加します。たとえば、あなたのスクリプトは、これらの内容のファイルを作成しています
from .additional_settings import ADDITIONAL_APPS 

... 

INSTALLED_APPS += ADDITIONAL_APPS 

このようにすれば、何かを解析する必要はなく、既存の設定を破損する危険性はありません。

動作するかどうか教えてください

関連する問題