4

我有几个自定义的 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. 我在导入dev文件的目录和目录中创建了一个settings文件(该文件又导入了 base.py)。MainProjectmy_project
  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有用,所以我很好。

4

2 回答 2

1

我建议做什么:

创建一个普通的 settings.py 文件并在其中导入其他文件之一。这避免了三个场景之间共享的重复设置+它实际上是根据 DRY 原则推荐的方式。

通常,您只需在特定设置文件中设置调试参数、数据库设置和私钥。所有其他设置应该在所有场景之间共享,以避免忘记更新一个并且难以调试错误。

于 2013-07-21T12:12:59.910 回答
0

您是否尝试过从__init__.py您的设置模块中导入开发设置?

设置/_初始化_.py

from .dev import *

于 2013-07-22T03:11:12.370 回答