【问题标题】:Django Models.py N to N relationship, always says one object is not definedDjango Models.py N 对 N 关系,总是说一个对象没有定义
【发布时间】:2015-05-04 12:00:11
【问题描述】:

我正在与学院、教师和学生一起使用 Django 项目做一个简单的测试。

我正在尝试这个:

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)

问题是,如果我实现第一个学生,找不到老师来制作外键,如果我实现第一个老师也是一样。

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

谢谢!

【问题讨论】:

  • 虽然 Aamir 的回答是正确的,但您的模型没有任何意义。 ForeignKey 是多对一的关系,不能用来定义“老师”和“学生”这样的关系。但是,这些已经由您在教师和学生模型上定义的 ForeignKeys 的 reverse 关系提供。
  • @DanielRoseman 是的,我知道,这是一个愚蠢的开始错误,它已经被修复了。谢谢!

标签: django django-models foreign-key-relationship cross-reference


【解决方案1】:

Student 模型中将外键设置为Teahcer 模型作为字符串:

teachers = models.ForeignKey('Teacher')

here所述:

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

【讨论】:

  • 完美男人!像魅力一样工作,它比我做的更有意义。谢谢你!
猜你喜欢
  • 1970-01-01
  • 2019-08-24
  • 1970-01-01
  • 1970-01-01
  • 2021-02-09
  • 2018-09-23
  • 2011-10-05
  • 1970-01-01
  • 2021-03-16
相关资源
最近更新 更多