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

Hel*_*nar 4 python django django-models

我有这样的文件顺序:

project/
    app/
        models.py
        signals.py
Run Code Online (Sandbox Code Playgroud)

我将信号保持在signals.py应该是的内部.在signals.py文件的顶部,我包含myapp模型,因为我在这些信号中查询

from myproject.myapp.models import Foo
Run Code Online (Sandbox Code Playgroud)

但是它似乎找不到它,因为我运行服务器或从manage.py验证,它给出了这个错误:

   from myproject.myapp.models import Foo
ImportError: cannot import name Foo
Run Code Online (Sandbox Code Playgroud)

我正在使用Django 1.2.1.

Dan*_*man 14

很可能你有循环依赖.你的models.py导入信号吗?如果是这样,这不起作用,因为两个模块现在彼此依赖.您可能需要在信号文件中的函数内导入模型,而不是在顶层导入模型.

  • 另一个选择是将`import signals`移动到`models.py`文件的最后. (4认同)