2010-06-24 8 views
4

j'ai cet ordre de fichier:fichier signaux Django, ne peut pas importer les noms de modèle

project/ 
    app/ 
     models.py 
     signals.py 

Je garde des signaux à l'intérieur signals.py comme il devrait être. et en haut du fichier signals.py, j'inclus des modèles myapp comme je le fais des requêtes dans ces signaux avec

from myproject.myapp.models import Foo 

Cependant il ne semble pas trouver, comme je lance le serveur ou de valider manage.py, il donne cette erreur:

from myproject.myapp.models import Foo 
ImportError: cannot import name Foo 

J'utilise Django 1.2.1.

Répondre

13

Vous avez probablement une dépendance circulaire. Est-ce que votre model.py importe les signaux? Si c'est le cas, cela ne peut pas fonctionner car les deux modules dépendent maintenant les uns des autres. Vous devrez peut-être importer les modèles dans une fonction du fichier de signaux, plutôt qu'au niveau supérieur.

+0

merci beaucoup Daniel! Mettre l'importation dans le signal a résolu le problème :) – Hellnar

+4

Une autre option consiste à déplacer les 'import signals' à la fin de votre fichier' models.py'. – bradenm

Questions connexes