我正在尝试设置包括一些基本设置的多个设置文件(开发,生产等)。虽然无法成功。当我尝试运行./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
提交
取消