我想从一个独立的python脚本中编写一个Django模型,该脚本生成一个CSV文件,但似乎处于错误的环境中



我有一个独立的python脚本,它定期自动运行,从外部数据生成CSV文件。

我希望这个脚本也能在虚拟环境中运行的Django应用程序中更新相应的模型。

我在脚本中添加了以下几行

from django.conf import settings
settings.configure()
from app.models import BER_assessors

该模型是BER_assessors,在django应用程序根目录的应用程序目录中的model.py文件中定义。该脚本也位于django应用程序(包含app/authentication/core/env/media等文件夹的应用程序(的根目录

当我运行我的脚本时;django.core.exceptions.AppRegistryNotReady:应用程序尚未加载"Django应用程序本身运行良好。

我认为这是一个背景或环境的问题,即我不是";在";应用程序,因此无法写入模型等。我该如何更正?

问候/Colm

独立脚本的正确顺序是:

import django
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'module.settings')
django.setup()
# other django related imports can now be done.

我无法得到上面的答案。它一直告诉我,其他模块没有定义。因此,经过挖掘,我发现我需要激活virtualenv才能使所有这些模块可用。

这个页面给了我正确的方向,我最终在文件的顶部添加了以下内容。

activate_this = '/full_path_to.../env/bin/activate_this.py'
exec(open(activate_this).read())
import sys
sys.path.append("/full_path_to.../env/lib/python3.7/site-packages")
import django
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'core.settings')
django.setup()

没有更多的错误消息,脚本现在正在工作。

脚本在django安装的根文件夹中,settings.py文件在核心子文件夹中

最新更新