django-admin.py 找不到自定义设置文件

标签 django django-admin django-settings django-manage.py

我有几个自定义的 django 设置,这基本上是我的项目结构:

MainProject/
  manage.py
  my_project/
    settings/
      base.py
      dev.py
      prod.py

我创建了 __init__.py目录中的文件以将它们标识为包。
我已经导出了DJANGO_SETTINGS_MODULE指向所选的设置文件。
manage.py命令似乎处理得很好,我从来没有遇到过问题。

问题是无论我做什么django-admin.py 无法找到任何设置文件。我已经尝试了几种可能的解决方案,但到目前为止似乎没有任何效果。

  1. 我使用过 --settings=my_project.settings.dev
  2. 我已编辑并硬编码了 manage.py让它指向 dev.py 文件
  3. 我创建了一个settings文件位于 MainProject 内和my_project导入 dev 文件的目录(进而导入 base.py)。
  4. 我创建了一个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/

相关文章:

python - ZODB 中的冲突解决

Django 过滤通用关系

django - Django管理员: Making a required field read-only

python - Django 应用程序尚未加载错误

django - 在运行时单元测试 Django Rest Framework 身份验证

python - 如何在 Django 中设置我自己的时区?

python - django-taggit 公共(public)标签仅从基本 url 可见

python - 使用 python 3.6 将 Django 2.0 与 sql server 2014 连接时出错

django - 自定义list_filter结果

python - 只读现有字段但允许在 django admin 中创建新内联时添加