关于如何在项目外使用django模型,我看到了很多答案。但我没有成功。我正在尝试实现 this回答但我得到一个错误。我在我的应用程序中创建了一个新文件“script.py”。
脚本.py
from django.conf import settings
settings.configure(
DATABASE_ENGINE = 'sqlite3',
DATABASE_NAME = '/home/shivam/study/Python/automation/project/db.sqlite3',
DATABASE_USER = '',
DATABASE_PASSWORD = '',
DATABASE_HOST = '',
DATABASE_PORT = '',
TIME_ZONE = 'America/New_York',
)
from models import *
当我运行这个脚本时,出现错误。
Traceback (most recent call last):
File "script.py", line 11, in <module>
from models import *
File "/home/shivam/study/Python/automation/project/videos/models.py", line 11, in <module>
class video(models.Model):
File "/home/shivam/study/Python/automation/env/local/lib/python2.7/site-packages/django/db/models/base.py", line 105, in __new__
app_config = apps.get_containing_app_config(module)
File "/home/shivam/study/Python/automation/env/local/lib/python2.7/site-packages/django/apps/registry.py", line 237, in get_containing_app_config
self.check_apps_ready()
File "/home/shivam/study/Python/automation/env/local/lib/python2.7/site-packages/django/apps/registry.py", line 124, in check_apps_ready
raise AppRegistryNotReady("Apps aren't loaded yet.")
django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.
有人可以帮我解决这个问题吗?
请您参考如下方法:
您需要的是可导入的设置。
import os
import django
os.environ["DJANGO_SETTINGS_MODULE"] = 'project.settings'
django.setup()
from .models import
另一种通过 django shell 调用脚本的方法:
python manage.py shell < script.py
