2013-07-21 61 views
3

我有幾個自定義Django的設置,這基本上是我的項目結構:django-admin.py無法找到自定義設置文件

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) 

似乎沒有任何工作至今。

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

SOLUTION:
我沒有找到確切的解決方案,但感謝對所選答案的評論,我明白你基本上可以使用manage.py來處理你在django-admin.py中可以做的所有事情,但我不知道!由於事情對我使用manage.py我工作很好。

回答

1

我建議在做什麼:

創建一個正常的settings.py文件並導入別人的一個在那裏。這樣可以避免在三種情況下共享設置的重複+根據DRY原則,它實際上是推薦的方式。

通常,您只會在特定設置文件中設置調試參數,數據庫設置和私鑰。所有其他設置應該在所有場景之間共享,以避免忘記更新並且難以調試錯誤。

+0

做到這一點。它適用於manage.py,它不適用於django-admin.py – Leonardo

+2

你不應該使用django-admin.py,你應該使用manage.py。它負責設置環境,並可以執行所有的命令django-admin可以。 [請參閱Django文檔](https://docs.djangoproject.com/en/dev/ref/django-admin/) – timovdw

+0

不知道!它適用於我與manage.py所以我解決了這個問題,謝謝! – Leonardo

0

您是否嘗試從設置模塊中導入__init__.py中的開發設置?

settings/_ init _。PY

from .dev import *