0

django では、各マシンが異なる設定を持つことができるように、local_settings.py補足するためにファイルを使用するのが非常に一般的です。settings.py通常、人々はこのようなことをします。

try:
    from local_settings import *
except ImportError:
    print "No local settings found!"

ただし、設定ファイルには通常、INSTALLED_APPS. アプリを追加したい場合、リスト全体を にコピーしlocal_settings.pyて変更したくはありません (コードが読みにくくなり、更新settings.pyしても を書き換えるマシンには影響しなくなりますINSTALLED_APPS)。だから私はこのようなことができると考えました:

try:
    f = open('local_settings.py','r')
    exec f.read()
except IOError:
    print "No local settings found!"

変数local_settings.py全体を書き換える必要がなくなりました。INSTALLED_APPS

INSTALLED_APPS.append('debug_toolbar')

exec私は、あなたが使っているときはいつでも、あるいはevalおそらく何か間違ったことをしているという印象を受けました. だから私の質問は、これに何か問題がありますか、それを行うためのより良い方法はありますか?

4

2 に答える 2

1

もっと良い方法があります: にインポートINSTALLED_APPSlocal_settings.py、コピーしてから、コピーに追加します:

import settings

INSTALLED_APPS = settings.INSTALLED_APPS[:] + ['debug_toolbar']
于 2012-12-04T18:14:02.833 に答える
1

これは私のテクニックです:

settings.py :

try:
    from local_settings import *
except ImportError:
    sys.exit("FATAL: No local settings file found.")

local_settings.py

import settings

settings.INSTALLED_APPS += ('django_extensions',)
于 2012-12-04T18:16:12.940 に答える