Django: 設定変数が設定されているかどうかを確認する 質問する

Django: 設定変数が設定されているかどうかを確認する 質問する

私が実現しようとしていることの例を次に示します。望ましい効果は、関連する設定が定義されている場合にのみ、特定の機能が有効になることです。それ以外の場合は、機能は無効にする必要があります。

設定.py:

SOME_VARIABLE = 'some-string'
ANOTHER_VARIABLE = 'another-string'

ランダムコードファイル.py:

from django.conf import settings

if settings.is_defined('ANOTHER_VARIABLE'): # <- I need this.
    do_something(settings.ANOTHER_VARIABLE)
else:
    do_something_completely_different()

上記のコードでは、 の代わりに何をすべきかが抜けていますsettings.is_defined

これが問題に対するまったく間違ったアプローチである場合は、代替アプローチについても喜んでお聞きします。望ましい効果は、関連する設定が存在する場合にのみ有効になる、自動的にアクティブ化される機能です。settings.ACTIVE_FEATURES機能が有効かどうかを評価するための特別な設定や、空白の文字列や None などの特別な値は避けたいと思います。

私が最もしたくないことは、try/except を使用することです。むしろ、その機能の除外を示す空の値を使用します。 - ただし、try/except が本当に推奨される方法である場合は、徹底的なソースまたは説明が提供されていれば、回答を正解としてマークします。実際、これはどの回答にも当てはまります。

つまり、Django で設定変数が定義されているかどうかを確認する適切な方法が必要です。

前もって感謝します!

ベストアンサー1

どうやら正しい方法で作成したようです:設定オブジェクトをインポートして確認します。

以下のものも試すことができます:

if hasattr(settings, 'ANOTHER_VARIABLE'):

の代わりに:

if settings.is_defined('ANOTHER_VARIABLE'):

私は見つけたドキュメントこれが役に立つことを願っています。

おすすめ記事