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



我有一个典型的Django web应用程序。我想创建一个单独的项目,有自己的虚拟环境,并利用ORM在DB中创建新的条目。

有很多资源解释如何做到这一点,包括文档中的这个条目。因此,我编写了如下脚本:

# 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运行时,我的配置显然有效。这个额外的设置导致问题的问题是什么?

谢谢!

尝试:

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的答案一样。

最新更新