将Django模型导入python cli脚本

时间:2011-05-27 03:23:42

标签: python django django-models

我正在运行这个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,它目前不会)?

THX

3 个答案:

答案 0 :(得分:6)

Django支持创建自定义django-admin命令(documentation)。

对于创建访问模型的命令行脚本非常有用。

答案 1 :(得分:2)

  1. 确保已将包含testproject文件夹的文件夹添加到sys.path。 例如,如果您有以下结构/foo/bar/testproject/models.py,那么您应该将/foo/bar添加到sys.path
  2. 确保testproject文件夹中包含__init__.py文件(可以为空)。

答案 2 :(得分:1)

如果未正确加载您的设置,则from django.db import models将失败。实际上,找不到您的testproject包裹;将包含testproject/的目录添加到sys.path。