2016-04-05 7 views
0

複数の設定を設定しようとしています。この考え方は、中央のバックエンドを持つことであり、site_settings.pyでは、site_settingsに異なるconfigを貼り付ける代わりに、1つの行を変更してteの設定を切り替えることが考えられます。複数の設定を設定するDjango

#config1.py

from __future__ import absolute_import 
from __future__ import unicode_literals 

from .defaults import * # noqa 


SOMECONFIG = NEWS_CONFIG = 'something' 

MAPPED_ITEMS = { 
    'Something': { 
     'from': { 
      'provider': 'someprovider', 
      'app': 'test', 
      'model': 'Test' 
     }, 
     'to': { 
      'provider': 'someprovider', 
      'app': 'test', 
      'model': 'Test' 
     } 
    }, 
    'Something2': { 
     'from': { 
      'provider': 'someprovider', 
      'app': 'test', 
      'model': 'Test' 
     }, 
     'to': { 
      'provider': 'someprovider', 
      'app': 'test', 
      'model': 'Test' 
     } 
    } 
} 

そして、基本的には他の設定ファイルが異なるだけSOMECONFIG = NEWS_CONFIG = 'something2'と、同じであるとofcourseのMAPPED_ITEMSが異なる

ている問題は、私は、それを使用していますことをアプリの中で、ありますこれらの設定ファイルからではなく、設定から設定を取得します。 site_settings.pyに、どの設定ファイルを使用するかを決定したいと思います。

+0

この回答を参照してくださいファイルとしてこの設定ファイルを使用します。http://stackoverflow.com/a/15325を966/1081569 –

+0

ローカルやプロダクションの設定とは特に関係がありません。複数の企業で作業している間に設定をすばやく切り替えるだけです。このプロジェクトは中心的なバックエンドであり、各企業は独自のmapped_itemを持っています。考え方は、この 'SETTINGS = company1.py'の行に沿って何かを素早く設定することです。 – dnsko

+1

はい、それは同じ考えです。 '--settings'スイッチを使って正しい設定を選択してください。 –

答えて

0

site_settingsファイルの名前は、共通設定ファイルのbase.pyとすることができます。次に、あなたのconfig.py(dev.pyまたはproduction.py)

config1.pyファイル(dev.py)

from base import * 
SOMECONFIG = NEWS_CONFIG = 'something' 

config2.py(production.py)にbase.pyを継承

from base import * 
SOMECONFIG = NEWS_CONFIG = 'Anything' 

あなたの実際の設定は