我已经在这个问题上看了很多问题,并没有为我的具体案例找到解决方案。我目前面临的问题是当我尝试save()从Python脚本插入新行时,我的sqlite db文件正在被删除。但是,当从我的一个Django应用程序中使用相同的步骤时,这不会发生。
为了使用我的Django模型使用下面没有提到的外部Python脚本,我需要一些额外的设置吗?
在Python脚本中,我已将以下内容添加到文件顶部:
sys.path.append(my_project_path)
os.environ['DJANGO_SETTINGS_MODULE']='settings'
from django.conf import settings
我还仔细检查过以下项目:
这是我看到的行为:
是否有任何我在能够使用另一个Python脚本的Django模型时缺少的东西?我正在使用这个脚本作为一些手动更新的工具,并且非常希望它能够正常运行。
以下是我的设置的快速示例:
目录:
myproject/
myproject/myapp/
myproject/tools/
Django模型驻留在myproject / myapp /中,脚本位于myproject / tools /中。 PYTHONPATH包括myproject /。在脚本中,我有以下内容:
import os
import sys
sys.path.append(absolute_path_to_myproject)
os.environ['DJANGO_SETTINGS_MODULE']='settings'
from django.conf import settings
import myapp.models
my_model = myapp.models.my_model(name = 'TestName')
my_model.save()
答案 0 :(得分:-1)
你的设置不够详细,但听起来有更好的方法。
Django已经为您管理数据库连接,因此无需解决实际的sqlite文件。只需使用“python manage.py my_script”在django会话中运行您的脚本。以下是执行此操作的方法:https://docs.djangoproject.com/en/dev/howto/custom-management-commands/