我的项目结构如下:
my_proj
---calculation
---cardata
---master
---my_proj
--- __init.py__
--- admin.py
--- settings.py
--- url.py
--- update_db_from_ftp.py ///// This is my custom file
在 update_db_from_ftp.py 中我想从ftp下载一个csv文件,并每天用cron更新一次数据库(如有必要)。
但问题是我无法导入我想要更新的模型。我想要更新的模型位于master
文件中的models.py
文件夹中。
我尝试按如下方式导入模型:
from master.models import ModelName
但我收到的错误如下:
Traceback (most recent call last):
File "update_db_from_ftp.py", line 6, in <module>
from master.models import ModelName
ImportError: No module named master.models
但是我在cardata
和calculation
文件夹中使用了相同的模型,并且我在update_db_from_ftp.py
文件中尝试导入它的方式相同,但它可以正常工作。
知道怎么解决吗?
UDPATE
主文件夹的结构如下:
答案 0 :(得分:0)
在任意外部脚本中使用django代码时,需要做两件事:
下面是示例代码,无论脚本的位置如何都会起作用(尽管如果脚本不是一次性的,最好将其添加为管理命令):
import django
import os
import sys
sys.path.append("/path/to/my-proj/")
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'my-proj.settings')
django.setup()
from master.models import ModelName
if __name__ == "__main__":
print(ModelName.objects.all())