首页 > 解决方案 > 为什么不先使用 django.setup() 就无法将模型导入 python 脚本

问题描述

根据这个答案(Django script to access model objects without using manage.py shell),在我可以在我的独立 python 脚本中使用 Django 模型之前,将它指向项目的设置文件就足够了:

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "my_project.settings")
from my_app.models import MyModel

这会导致错误:

django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.

然而,这工作得很好:

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "my_project.settings")
import django
django.setup()
from my_app.models import MyModel

我使用 Django 2.1.7

现在是否需要django.setup()在我使用 Django 模型的每个脚本中使用?

标签: django

解决方案


简而言之,是的。django.setup如果您想使用 Django 功能,您需要致电。

有关此文档的更多信息。


推荐阅读