geoedu/
├── geoedu
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── settings.py
│ ├── settings.pyc
│ ├── urls.py
│ └── wsgi.py
├── geoedu.sublime-project
├── geoedu.sublime-workspace
├── manage.py
├── school
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── models.py
│ ├── models.pyc
│ ├── tests.py
│ └── views.py
└── student
├── __init__.py
├── __init__.pyc
├── models.py
├── models.pyc
├── tests.py
└── views.py
(顺便说一下,我喜欢树命令)。我的学校应用程序有一个名为School
的课程class School(models.Model):
#fields
并且学生应用程序有一个名为Student的模型,该模型具有学校的外键。所以在我的学校/ models.py
from school.models import School
class Student(models.Model):
#name and other personal data fields
school = models.ForeignKey(School, related_name='school')
所以学生只属于一所学校,但某所学校可以有很多学生。但是当尝试执行sqlall命令以查看是否一切正常时,我收到导入错误
./manage.py sqlall school
ImportError: cannot import name School
和
./manage.py sqlall student
ImportError: cannot import name School
如果我注释掉外键字段并且导入一切正常。为什么不看进口?所有项目文件夹都是使用django-admin命令从终端创建的,而应用程序则是从头开始使用manage命令。
sublime项目文件如下
{
"folders":
[
{
"follow_symlinks": true,
"path": "."
}
]
}
答案 0 :(得分:1)
原因是您的模型结构中有导入循环。使用"school.School"
的模型名称ForeignKey
可以解决此问题。或者你可以重新考虑你的模特'设计。