一对一
例子: 用户表(母表): id name age 1 zekai 18 薪水表(子表): id money us_id 1 2000 1 (只能出现一次) class UserInfo(models.Model): name = models.CharField(max_length=32) age = models.CharField(max_length=32) class Salary(models.Model): money = models.CharField(max_length=32) us = models.OneToOneField("UserInfo") 对一对一表的增删改查: # 增 和普通一样 models.StaffInfo.objects.create(name="xxx", age=12) models.Salary.objects.create(money=3000, staff_id=2) # 一对一关联的外键如果添加重复会报错,也就是说django已经帮我们做好了唯一索引 # 删 和普通的也是一样的 models.Salary.objects.filter(staff_id=2).delete() # 也有级联删除的问题, 可以通过on_delete 修改值取消级联删除 # 改 和普通也一样 models.Salary.objects.filter(staff_id=2).update(money=2000) # 查 分为正查和反差两种 # 正查 通过点表中外键名跨表查询 row.staff.name res = models.Salary.objects.all() for row in res: print(row.money, row.staff.name) # 反差 点关联表的表明小写进行跨表查询 row.salary.money res = models.StaffInfo.objects.all() for row in res: print(row.name, row.salary.money)