7

プロジェクトのルートディレクトリにあるいくつかの「設定」ファイルで指定された数十の構成変数を使用する Django プロジェクトに取り組んでいます。

--> myproject
------> app folders
------> ...
--- settings.py
--- settings_global.py
--- settings_production.py
--- settings_development.py

さまざまな settings_* ファイルからの変数は、特定の実行時パラメーター (ホスト名など) に基づいて settings.py ファイルにインポートされます。それはすべてかなりうまく機能しますが、特定の変数を見つけるのが難しい場合があるため、設定変数を再編成していくつかのカテゴリに分割したいと思います。

  • プロジェクト固有の変数
  • django 固有の変数
  • インストール済みアプリ固有の変数 (django_compressor の設定など)
  • 環境固有の変数 (本番/開発)

また、settings.py ファイル以外のすべての設定ファイルを settings サブディレクトリに移動したいと思います。

--> myproject
------> app folders
------> ...
------> settings
---------- __init__.py
---------- common.py
---------- production.py
---------- development.py
---------- apps.py
---------- ...
--- settings.py

設定サブディレクトリ (および空の__init__.pyファイル) を作成し、設定ファイルをコピー/名前変更しました。次に、次のように、setting.py ファイルにこれらの変数をインポートしようとしました。

from settings.common import *
from settings.apps import *

ただし、ROOT_URLCONF が settings/common.py ファイルに存在する場合でも、次のエラーが発生します。

AttributeError: 'Settings' object has no attribute 'ROOT_URLCONF'

私は何を間違っていますか?

4

1 に答える 1

7

settings.py モジュールと設定パッケージの間に名前の衝突があると思います。パッケージの名前を別の名前に変更してみてください

于 2012-04-10T07:13:19.180 に答える