0

我正在做一个Django项目,与学院,教师和学生进行简单的测试。Django Models.py N到N的关系,总是说一个对象没有定义

我想这一点:

class Student(models.Model): 
    name = models.CharField() 
    direction = models.CharField() 
    city = models.CharField() 
    telephone = models.CharField(max_length=9) 
    email = models.EmailField() 
    teachers = models.ForeignKey(Teacher) 

class Teacher(models.Model): 
    name = models.CharField(max_length=50) 
    direction = models.CharField(max_length=150) 
    city = models.CharField(max_length=50) 
    telephone = models.CharField(max_length=9) 
    email = models.EmailField() 
    students = models.ForeignKey(Student) 

class Academy(models.Model): 
    name = models.CharField(max_length=50) 
    direction = models.CharField(max_length=150) 
    city = models.CharField(max_length=50) 
    teacher = models.ForeignKey(Teacher, blank=True, null=True) 
    students = models.ForeignKey(Student) 

的问题是,如果我实现了第一个学生,那并不觉得theacher做一个外键,同样的,如果我实现了第一个教师。

有什么方法可以在实现它们之前像C中的函数一样定义模型?

谢谢!

+1

尽管Aamir的回答是正确的,但您的模型没有任何意义。 ForeignKey是多对一的关系,不能用于定义“老师”和“学生”之类的关系。但是,这些已经由您已经在教师和学生模型中定义的ForeignKeys的* reverse *关系提供。 –

+0

@DanielRoseman是的,我知道,这是一个愚蠢的错误,它已经被修复了。 谢谢! – rul3s

回答

0

就在Student模型设置外键Teahcer模型作为字符串:

teachers = models.ForeignKey('Teacher') 

如前所述here

如果你需要创建一个尚未被 模型的关系定义,您可以使用模型的名称,而不是模型 对象本身

+0

完美的男人!像魅力一样工作,它比我做得更有意义。 谢谢! – rul3s

+0

很高兴我有帮助。 –