Django信号文件,无法导入模型名称

4 投票
1 回答
4013 浏览
提问于 2025-04-16 00:22

我有这样的文件顺序:

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)?如果有的话,这样就不行了,因为这两个模块现在互相依赖。你可能需要在信号文件中的一个函数里引入模型,而不是在文件的最上面引入。

撰写回答