2016-04-21 3 views
0

Я развертываю приложение Django для GitHub и Heroku.
я раскрывал его первым в GitHub, удаление (поместив его в файле .gitignore) «settings.py», и теперь, когда я пытаюсь подтолкнуть ее к Heroku, я получаю сообщение об ошибке:Heroku push reject (приложение Django)

ImportError: No module named settings 
remote: 
remote: !  Error while running '$ python manage.py collectstatic --noinput'. 
remote:  See traceback above for details. 
remote: 
remote:  You may need to update application code to resolve this error. 
remote:  Or, you can disable collectstatic for this application: 
remote: 
remote:   $ heroku config:set DISABLE_COLLECTSTATIC=1 
remote: 
remote:  https://devcenter.heroku.com/articles/django-assets 
remote: 
remote: !  Push rejected, failed to compile Python app 

Как я могу избежать нажатия какого-либо файла на GitHub, но при этом иметь возможность подталкивать его к Heroku?

UPDATE:

Я пытался сохранить settings.py и temp_settings.py отдельно, но теперь приложение больше не работает. Это отслеживающий, когда я пытаюсь запустить локальный сервер:

Traceback (most recent call last): 
    File "manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "/home/stefano/projects/blog-project/blogprojectenv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 338, in execute_from_command_line 
    utility.execute() 
    File "/home/stefano/projects/blog-project/blogprojectenv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 303, in execute 
    settings.INSTALLED_APPS 
    File "/home/stefano/projects/blog-project/blogprojectenv/local/lib/python2.7/site-packages/django/conf/__init__.py", line 48, in __getattr__ 
    self._setup(name) 
    File "/home/stefano/projects/blog-project/blogprojectenv/local/lib/python2.7/site-packages/django/conf/__init__.py", line 44, in _setup 
    self._wrapped = Settings(settings_module) 
    File "/home/stefano/projects/blog-project/blogprojectenv/local/lib/python2.7/site-packages/django/conf/__init__.py", line 92, in __init__ 
    mod = importlib.import_module(self.SETTINGS_MODULE) 
    File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module 
    __import__(name) 
    File "/home/stefano/projects/blog-project/blogproject/settings.py", line 104, in <module> 
    DATABASES['default'].update(db_from_env) 
NameError: name 'DATABASES' is not defined 

Кажется settings.py не может «достучаться» temp_settings.py, как я вырезать вставить все параметры базы данных в temp_settings. Это неправильно?

ответ

0

Общей практикой является не игнорировать файл settings.py из базы кода. Вместо этого, сделать что-то вроде:

try: 
    from temp_settings import * 
except ImportError: 
    pass 

в конце settings.py файла и добавить temp_settings.py в .gitignore

Для учетных данных, которые необходимо сохранить личные, использовать temp_settings.

+0

Я попробую, спасибо. –

+0

Я пробовал, и, когда они были перенесены в GitHub, учетные данные _private_ на «settings.py» находятся между тэгами, например: <<<<<<< HEAD ======= ", но они есть, я имею в виду: они не скрыты –

+0

Это не имеет никакого отношения к частным учетным данным; это результат плохого слияния в git. Вам нужно это исправить. –

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