2013-07-21 3 views
3

У меня есть несколько пользовательских настроек Джанго, это в основном моя структура проекта: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) 

Ничто, кажется, работает до сих пор.

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

РЕШЕНИЕ:
Я не нашел точное решение, но благодаря комментарию к выбранному ответу я понял, что вы можете в основном использовать manage.py за все, что вы могли бы сделать в django-admin.py, я этого не знал! Так как вещи работают для меня, используя manage.py Я в порядке.

ответ

1

Что я рекомендую делать:

Создайте обычный файл settings.py и импортировать один из других там. Это позволяет избежать дублирования настроек, разделяемых между тремя сценариями +, на самом деле это рекомендуемый способ выполнения в соответствии с принципом DRY.

Как правило, у вас будет только набор параметров отладки, параметров базы данных и закрытых ключей в определенных файлах настроек. Все остальные настройки должны быть разделены между всеми сценариями, чтобы избежать забывания обновить их и усложнить отладки ошибок.

+0

Сделано это. Он работает для manage.py, это не для django-admin.py – Leonardo

+2

Вы не должны использовать django-admin.py, ou должен использовать manage.py. Он заботится о настройке среды и может выполнять все команды django-admin. [См. Django Doc] (https://docs.djangoproject.com/en/dev/ref/django-admin/) – timovdw

+0

Не знал этого! Это работает для меня с manage.py, поэтому я решил проблему, спасибо! – Leonardo

0

Вы пытались импортировать настройки dev внутри __init__.py из вашего модуля настроек?

Настройки/_ init _.ру

from .dev import *

Смежные вопросы