Django信号文件,无法导入模型名称
我有这样的文件顺序:
project/
app/
models.py
signals.py
我把信号放在signals.py文件里,这样是对的。在signals.py文件的顶部,我引入了myapp的模型,因为我在这些信号里要用到查询:
from myproject.myapp.models import Foo
但是当我运行服务器或者从manage.py验证时,它似乎找不到这些模型,出现了这个错误:
from myproject.myapp.models import Foo
ImportError: cannot import name Foo
我使用的是Django 1.2.1。
1 个回答
15
很可能你遇到了循环依赖的问题。你的 models.py 文件里有没有引入信号(signals)?如果有的话,这样就不行了,因为这两个模块现在互相依赖。你可能需要在信号文件中的一个函数里引入模型,而不是在文件的最上面引入。