独立 Django ORM - 无法识别默认设置
Standalone Django ORM - default settings not recognized
我有一个典型的 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
运行 时,我的配置显然有效。这个导致问题的附加设置有什么问题?
谢谢!
尝试:
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 docs say 你通常不应该这样做,在你的情况下它会导致错误,因为你没有为 LOGGING
.
设置默认值
配置脚本以使用 Django 默认设置的最简单方法是设置环境变量,如@BigZ 的回答。
我有一个典型的 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
运行 时,我的配置显然有效。这个导致问题的附加设置有什么问题?
谢谢!
尝试:
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 docs say 你通常不应该这样做,在你的情况下它会导致错误,因为你没有为 LOGGING
.
配置脚本以使用 Django 默认设置的最简单方法是设置环境变量,如@BigZ 的回答。