我有几个自定义的 django 设置,这基本上是我的项目结构:
MainProject/
manage.py
my_project/
settings/
base.py
dev.py
prod.py
我创建了 __init__.py
目录中的文件以将它们标识为包。
我已经导出了DJANGO_SETTINGS_MODULE
指向所选的设置文件。
manage.py
命令似乎处理得很好,我从来没有遇到过问题。
问题是无论我做什么django-admin.py
无法找到任何设置文件。我已经尝试了几种可能的解决方案,但到目前为止似乎没有任何效果。
- 我使用过
--settings=my_project.settings.dev
- 我已编辑并硬编码了
manage.py
让它指向 dev.py 文件 - 我创建了一个
settings
文件位于MainProject
内和my_project
导入 dev 文件的目录(进而导入 base.py)。 - 我创建了一个
settings
让 Django 知道应该使用哪些文件作为settings
的文件
这是关于第4点:
from django.core.management import setup_environ
try:
import my_project.settings.dev as settings
except ImportError:
import sys
sys.stderr.write("Couldn't find the settings.py module.")
sys.exit(1)
setup_environ(settings)
到目前为止似乎没有任何效果。
======================================
解决方案:
我没有找到确切的解决方案,但由于对所选答案的评论,我明白您基本上可以使用 manage.py
您可以在django-admin.py
中做的一切,我不知道!因为使用 manage.py
确实对我有用我没问题。
最佳答案
我建议做什么:
创建一个普通的 settings.py 文件并在其中导入其他文件之一。这避免了在三个场景之间共享设置的重复+这实际上是根据 DRY 原则推荐的做法。
通常,您只能在特定设置文件中设置调试参数、数据库设置和私钥。所有其他设置应在所有场景之间共享,以避免忘记更新设置并难以调试错误。
关于django-admin.py 找不到自定义设置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17768531/