独立Django ORM - 无法识别默认设置

时间:2015-09-15 15:40:36

标签: python django django-models django-orm

我有一个典型的Django网络应用程序。我想用自己的virtualenv创建一个单独的项目,并利用ORM在数据库中创建新条目。

有很多资源可以解释如何执行此操作,包括this entry from the docs。所以我写了一个脚本如下:

# 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 个答案:

答案 0 :(得分:8)

尝试:

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()

这对我有用。希望它有所帮助

答案 1 :(得分:3)

当你说

settings.configure(django_settings)

相同
settings.configure(default_settings=django_settings)

所以你告诉Django使用django_settings作为默认值,而不是django.conf.global_settings。您通常不应该执行此操作的Django docs say,并且在您的情况下由于您没有为LOGGING设置默认值而导致错误。

配置脚本以使用Django默认设置的最简单方法是设置环境变量,如@ BigZ的答案。

相关问题