Django在尚未定义的模型上创建关系

时间:2016-07-04 09:10:21

标签: django python-2.7

我是一个新手,我想问一些可能是基本的东西,我刚刚阅读了关于在尚未定义的模型上创建关系的Django 1.9文档,它说“你可以使用模型的名称,而不是模型对象本身“比我尝试它,这是我的代码:

@python_2_unicode_compatible
class Student(models.Model):
    name=models.CharField(max_length=50)
    teachers=models.ForeignKey('Teacher')

def __str__(self):
    return self.name

@python_2_unicode_compatible
class Teacher(models.Model):
    name=models.CharField(max_length=50)

def __str__(self):
    return self.name

当我尝试保存Student对象时,它会给我这样的错误: “OperationalError:table latihan_student没有名为teachers_id的列” 有人可以解释一下,谢谢你。抱歉我的英文不好

2 个答案:

答案 0 :(得分:0)

这与定义ForeignKey的方式无关。你在表中添加了一个字段;你需要迁移数据库。

答案 1 :(得分:0)

按如下方式更新教师模型:

@python_2_unicode_compatible
class Teacher(models.Model):
    name=models.CharField(max_length=50)
    teachers = models.CharField(max_length=50)

现在您可以在其他模型中使用和创建它的对象。你得到了另一个错误,因为在创建对象之后,它已经在数据库中有条目,你不能说null = True所以你得到了完整性错误,所以为你得到完整性错误的字段添加null = True。