2010-06-24 62 views
4

我有這樣的文件順序: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。

回答

13

很可能你有循環依賴。你的models.py是否導入信號?如果是這樣,這是不可能的,因爲兩個模塊現在都相互依賴。您可能需要在信號文件中的函數中導入模型,而不是在頂層。

+0

非常感謝Daniel!將信號導入信號解決了問題:) – Hellnar 2010-06-24 10:49:43

+4

另一種方法是將'import signals'移動到'models.py'文件的最後。 – bradenm 2012-06-13 18:00:46

相關問題