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

时间:2013-07-21 02:34:41

标签: 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. 我在导入 dev 文件的settingsMainProject目录中创建了一个my_project文件(后者又导入了base.py)
  4. 我创建了一个settings文件,让Django知道应该将哪些文件用作settings
  5. 关于第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)
    

    到目前为止似乎没有任何作用。

    ====================================

    SOLUTION:
    我没有找到确切的解决方案但是由于对所选答案的评论我理解你基本上可以使用manage.py来完成你在django-admin.py中可以做的所有事情,我不知道!因为事情对我有用manage.py我对它很好。

2 个答案:

答案 0 :(得分:1)

我建议做什么:

创建一个普通的settings.py文件并导入其中一个。这样可以避免重复三种场景共享的设置+实际上这是根据DRY原则进行的设置。

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

答案 1 :(得分:0)

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

设置/ _ 初始 _。py

from .dev import *