在Python CLI脚本中导入Django模型

2 投票
3 回答
3217 浏览
提问于 2025-04-16 18:26

我刚开始使用这个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
  1. 确保你已经把包含 testproject 文件夹的文件夹添加到 sys.path 中。比如,如果你的文件结构是 /foo/bar/testproject/models.py,那么你应该把 /foo/bar 加入到 sys.path
  2. 确保 testproject 文件夹里面有一个 __init__.py 文件(这个文件可以是空的)。

撰写回答