我正在嘗試設置包括一些基本設置的多個設置文件(開發,生產等)。雖然無法成功。當我嘗試運行./manage.py runserver時,出現以下錯誤:(cb)clime@den /srv/www/cb $ ./manage.py runserverImproperlyConfigured: The SECRET_KEY setting must not be empty.這是我的設置模塊:(cb)clime@den /srv/www/cb/cb/settings $ lltotal 24-rw-rw-r--. 1 clime clime 8230 Oct 2 02:56 base.py-rw-rw-r--. 1 clime clime 489 Oct 2 03:09 development.py-rw-rw-r--. 1 clime clime 24 Oct 2 02:34 __init__.py-rw-rw-r--. 1 clime clime 471 Oct 2 02:51 production.py設置文件之一:(cb)clime@den /srv/www/cb/cb/settings $ cat development.py from base import *DEBUG = TrueTEMPLATE_DEBUG = TrueALLOWED_HOSTS = ['127.0.0.1', '31.31.78.149']DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'cwu', 'USER': 'clime', 'PASSWORD': '', 'HOST': '', 'PORT': '', }}MEDIA_ROOT = '/srv/www/cb/media/'STATIC_ROOT = '/srv/www/cb/static/'TEMPLATE_DIRS = ( '/srv/www/cb/web/templates', '/srv/www/cb/templates',)代碼在manage.py:(cb)clime@den /srv/www/cb $ cat manage.py #!/usr/bin/env pythonimport osimport sysif __name__ == "__main__": os.environ.setdefault("DJANGO_SETTINGS_MODULE", "cb.settings.development") from django.core.management import execute_from_command_line execute_from_command_line(sys.argv)如果添加from base import *到/srv/www/cb/cb/settings/__init__.py(否則為空),它會神奇地開始工作,但我不明白為什么。任何人都可以向我解釋這是怎么回事?它一定是一些python模塊魔術。編輯:如果我從base.py刪除此行,一切也將開始工作django.template.loader.add_to_builtins('web.templatetags.cb_tags')如果我從web.templatetags.cb_tags中刪除此行,它也將開始工作:from endless_pagination.templatetags import endless我想這是因為最終導致from django.conf import settingsPER_PAGE = getattr(settings, 'ENDLESS_PAGINATION_PER_PAGE', 10)因此,它會產生一些怪異的循環內容并結束游戲。
3 回答

拉莫斯之舞
TA貢獻1820條經驗 獲得超10個贊
我有同樣的錯誤,結果是設置加載的模塊或類與設置模塊本身之間存在循環依賴關系。在我的情況下,這是一個中間件類,該類在設置中被命名,該類本身試圖加載設置。
添加回答
舉報
0/150
提交
取消