Автономный Django ORM - настройки по умолчанию не распознаны
У меня есть типичное веб-приложение Django. Я хочу создать отдельный проект со своим собственным virtualenv и использовать ORM для создания новых записей в БД.
Существует множество ресурсов, объясняющих, как это сделать, включая эту статью из документации. Поэтому я написал сценарий следующим образом:
# Add Django project directory to path, so that I can
# import the models
import sys
sys.path.append("/path/to/django/project")
# Import my settings file from the Django project
from django_proj import settings as django_settings
import django
from django.conf import settings
if not settings.configured:
settings.configure(django_settings)
django.setup()
Когда я пытаюсь запустить его таким образом, я получаю следующую ошибку:
AttributeError: 'module' object has no attribute 'LOGGING_CONFIG'
Я считаю, что это связано с тем, что я не указываю LOGGING_CONFIG
явно в моих настройках. Я полагаюсь на значение по умолчанию.
Моя конфигурация четко работает, когда я запускаю ее через python manage.py
, В чем проблема с этой дополнительной настройкой, которая вызывает проблемы?
Спасибо!
2 ответа
Пытаться:
import os
import sys
import django
sys.path.append('/path/to/django_project')
#from django_project import *
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'django_project.settings')
django.setup()
Это сработало для меня. Надеюсь, поможет
Когда ты сказал
settings.configure(django_settings)
это так же, как
settings.configure(default_settings=django_settings)
так что вы говорите Django использовать django_settings
по умолчанию, вместо django.conf.global_settings
, Документы Django говорят, что вам обычно не нужно делать это, и в вашем случае это вызывает ошибки, потому что вы не установили значение по умолчанию для LOGGING
,
Самый простой способ настроить ваш скрипт для использования ваших настроек со значениями по умолчанию в Django - это установить переменную окружения, как в ответе @BigZ.