2009-11-26 6 views
7

j'ai ce code dans mon tests.py:import deux fois lorsqu'il est exécuté essai

from models import * 

et dans le models.py j'ai un gestionnaire de signaux et l'enregistrer avec

post_save.connect(post_save_note, sender=Note) 

et quand i exécuter le test avec ./manage.py test main

J'ai trouvé le gestionnaire de signal a été enregistré deux fois et exécuté deux fois, et j'ai trouvé que c'est parce que les modèles ont été importés deux fois.

est-ce que je ne peux pas mettre from models import * dans le code de test? que devrais-je faire?

Répondre

9

Vous devez vous assurer que vos modèles sont toujours importés de la même manière.

Ainsi, par exemple, si vous avez dans example1/tests.py:

from models import * 

et dans un autre paquet example2/views.py:

from example1.models import ModelA 

alors vous aurez le problème que vous rencontrez. La solution est d'être cohérent et d'utiliser seulement l'un ou l'autre.

+0

merci beaucoup – fallhunter

Questions connexes