【问题标题】:Django signals file, cannot import model namesDjango 信号文件,无法导入模型名称
【发布时间】:2010-06-24 09:30:41
【问题描述】:

我有这样的文件顺序:

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。

【问题讨论】:

    标签: python django django-models


    【解决方案1】:

    你很可能有循环依赖。您的 models.py 是否导入信号?如果是这样,这将无法工作,因为两个模块现在相互依赖。您可能需要在信号文件的函数中导入模型,而不是在顶层。

    【讨论】:

    • 非常感谢丹尼尔!将 import 放入信号中解决了这个问题:)
    • 另一种选择是将import signals 移动到models.py 文件的最后。
    猜你喜欢
    • 2017-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-31
    • 2016-04-12
    • 1970-01-01
    • 2020-12-14
    • 2011-07-11
    相关资源
    最近更新 更多