在Python CLI脚本中导入Django模型
我刚开始使用这个Django应用(我对Python也不太熟),想要访问模型。
我有以下内容:
import sys, os
sys.path.append('/Users/jx/dev/arc/django/second/')
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
from django.db import models
from testproject.models import Location
loc=Location.objects.get(name='Joes')
print loc.name
但是我遇到了以下错误:
Traceback (most recent call last):
File "zz.py", line 6, in <module>
from testproject.models import Location
ImportError: No module named testproject.models
有没有办法让我确认一下settings.py文件是否正确加载了?或者说,是否有明显的语法问题?PYTHONPATH应该包含模型的位置吗(现在如果打印os.environ的话,它并没有)?
谢谢!
3 个回答
1
如果你的设置没有正确加载,那么 from django.db import models
这一行就会出错。现在的问题是,系统找不到你的 testproject
包;你需要把包含 testproject/
的文件夹添加到 sys.path 里。
6
Django支持创建自定义的django-admin命令(文档)。
这对于创建可以在命令行中运行的脚本非常有用,这些脚本可以访问你的数据模型。
2
- 确保你已经把包含
testproject
文件夹的文件夹添加到sys.path
中。比如,如果你的文件结构是/foo/bar/testproject/models.py
,那么你应该把/foo/bar
加入到sys.path
。 - 确保
testproject
文件夹里面有一个__init__.py
文件(这个文件可以是空的)。