ImportError: невозможно импортировать имя «GuideTeacher» из «teacher.models» - PullRequest
0 голосов
/ 15 января 2020

У меня есть модель Учителя и модель Academi c. Когда я импортирую что-то в модель Academi c из модели учителя, я обнаружил ошибку импорта, такую ​​как

Файл "/media/sajib/Work/Project/schoolmanagement/teacher/models.py", строка 3, из Academi c. Отдел импорта .models, ClassInfo, Раздел, Сессия, Файл сдвига "/media/sajib/Work/Project/schoolmanagement/academic/models.py", строка 2, из файла teacher.models import GuideTeacher ImportError: невозможно импортировать имя «GuideTeacher» из «teacher.models» (/media/sajib/Work/Project/schoolmanagement/teacher/models.py)

Теперь, как я могу решить эту проблему? академический / models.py

from teacher.models import GuideTeacher
class ClassRegistration(models.Model):
    department_select = (
        ('general', 'General'),
        ('science', 'Science'),
        ('business', 'Business'),
        ('humanities', 'Humanities')
    )
    department = models.CharField(choices=department_select, max_length=15, null=True)
    class_name = models.ForeignKey(ClassInfo, on_delete=models.CASCADE, null=True)
    section = models.ForeignKey(Section, on_delete=models.CASCADE, null=True)
    session = models.ForeignKey(Session, on_delete=models.CASCADE, null=True)
    shift = models.ForeignKey(Shift, on_delete=models.CASCADE, null=True)
    guide_teacher = models.OneToOneField(GuideTeacher, on_delete=models.CASCADE, null=True)
    date = models.DateField(auto_now_add=True)

    class Meta:
        unique_together = ['class_name', 'section', 'shift', 'guide_teacher']

    def __str__(self):
        return str(self.class_name)

преподаватель / models.py

from academic.models import Department, ClassInfo, Section, Session, Shift
class GuideTeacher(models.Model):
    name = models.OneToOneField(PersonalInfo, on_delete=models.CASCADE, null=True)
    date = models.DateField(auto_now_add=True)

    def __str__(self):
        return str(self.name)

1 Ответ

1 голос
/ 15 января 2020

Это из-за Круговой импорт . Чтобы избавиться от ситуации, удалите оператор импорта в academic/models.py и укажите модель, связанную с FK, используя строковое представление

guide_teacher = models.OneToOneField(<b>'teacher.GuideTeacher'</b>, on_delete=models.CASCADE, null=True)
...