2017-10-16 3 views
0

J'ai un problème lors de l'utilisation d'importation après la mise à jour un de mes modèles, je reçois le ImportError d'erreur: ne peut pas importer le nom « Team »Django problème d'importation lors de la mise à jour des modèles

C'était mon modèle actuel

from django.db import models 
from registration.models import MyUser 
from django.core.urlresolvers import reverse 

# Create your models here. 

class Team(models.Model): 
    team_name = models.CharField(max_length=100, default = '') 
    team_hr_admin = models.ForeignKey(MyUser, blank=True, null=True) 
    members = models.ManyToManyField(MyUser, related_name="members") 

    def __str__(self): 
     return self.team_name 


class Project(models.Model): 
    name = models.CharField(max_length=250) 
    team_id = models.ForeignKey(Team, blank=True, null=True) 
    project_hr_admin = models.ForeignKey(MyUser, blank=True, null=True) 

et je voulais ajouter le candidat_answer au modèle de projet à partir du modèle de réponse, donc je les modèles importés pour être en mesure d'utiliser ce qui m'a donné que le code réel:

from django.db import models 
from registration.models import MyUser 
from survey.models.response import Response 
from django.core.urlresolvers import reverse 

# Create your models here. 

class Team(models.Model): 
    team_name = models.CharField(max_length=100, default = '') 
    team_hr_admin = models.ForeignKey(MyUser, blank=True, null=True) 
    members = models.ManyToManyField(MyUser, related_name="members") 

    def __str__(self): 
     return self.team_name 


class Project(models.Model): 
    name = models.CharField(max_length=250) 
    team_id = models.ForeignKey(Team, blank=True, null=True) 
    project_hr_admin = models.ForeignKey(MyUser, blank=True, null=True) 
    candidat_answers = models.ForeignKey(Response) 

Mais maintenant, je obtenir une erreur d'importation de mon point de vue à l'importation d'enregistrement ..

from website.models import Team, Project 
ImportError: cannot import name 'Team' 

initialisation:

""" 
    Permit to import everything from survey.models without knowing the details. 
""" 
from __future__ import unicode_literals 
from __future__ import print_function 
from __future__ import division 
from __future__ import absolute_import 

from future import standard_library 
standard_library.install_aliases() 
import sys 

from .answer import Answer 
from .category import Category 
from .question import Question 
from .response import Response 
from .survey import Survey 


__all__ = ["Category", "Answer", "Category", "Response", "Survey", "Question"] 

Répondre

2

Il semble que vous avez une importation circulaire. Vous n'avez pas besoin d'importer les modèles si vous les utilisez uniquement dans des clés étrangères. Retirez les importations et utiliser la chaîne '<app_name>.<Model name>' à la place, par exemple:

class Project(models.Model): 
    name = models.CharField(max_length=250) 
    team_id = models.ForeignKey(Team, blank=True, null=True) 
    project_hr_admin = models.ForeignKey('registration.MyUser', blank=True, null=True) 
    candidat_answers = models.ForeignKey('survey.Response') 
+0

Thx Alasdair pour votre réponse, Quand je l'essayer je reçois ImportError: ne peut pas importer le nom « réponse ». Mes modèles sont dans des modèles de dossiers dans response.py lorsque le modèle en question est Réponse – Ben2pop

+0

oui Il y a je l'ai mis dans ma description ... – Ben2pop

+0

Je ne peux pas dire quel est le problème du message d'erreur. La trace complète peut montrer quel est le problème. – Alasdair