一对一关系是什么 模型类使用 OneToOneField 用来定义一对一关系; 比如当你拥有一个老师表时,紧接着你还需要一个教授表,那么教授表可能拥有老师表的一系列属性,那么你还不想把
模型类使用
OneToOneField
用来定义一对一关系;
OneToOneField(to, on_delete, parent_link=False, options) class Teacher(models.Model): name = models.CharField(max_length=50) age = models.CharField(max_length=50) def __str__(self): return self.name class Professor(models.Model): teacher = models.OneToOneField(Teacher,primary_key=True,on_delete=models.CASCADE) big_project = models.CharField(max_length=50) def __str__(self): return self.teacher.name
>>> t1 = Teacher.objects.create(name='Jack',age='22') >>> t2 = Teacher.objects.create(name='Bob',age='17') >>> p1 = Professor.objects.create(teacher=t1,big_project='雾霾净化术') >>> p1.teacher <Teacher: Jack> >>> p1.teacher = t2 >>> p1.save()
# 正向查询:通过教授,查询对应的讲师信息 >>> p1.teacher <Teacher: Bob>
# 反向查询:通过讲师,查询教授信息, 反向查询时,只需要 模型类 本身即可 t1.professor.name