我是一个新手,我想问一些可能是基本的东西,我刚刚阅读了关于在尚未定义的模型上创建关系的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的列” 有人可以解释一下,谢谢你。抱歉我的英文不好
答案 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。