我们在创建一对多的关联表时,把外键ForeignKey创建到一对多中多的那张表
正向查询:
使用有外键的一方去查询没有外键的一方就是正向查询
使用方法:模型对象.外键属性
反向查询:
使用没有外键的一方去查询有外键的一方就是反向查询
使用方法:模型对象.关联的模型类名_set
多对多的跨表操作
使用ManyToManyField,ManyToManyField字段有两个属性to和related_name两个属性
提示:如果使用了related_name,在反向操作中就不能使用表名_set
一对多跨表操作
一般把ForeignKey设置在一对多中多的一方,ForeignKey可以和其他表做关联,也可以和自身做关联,ForeignKey有四个字段:
to:用来设置要关联的表
to_field:用来设置要关联的字段,django默认使用被关联对象的主键
related_name:在反向操作时使用的名字,用于代替反向查询时的表名_set
on_delete=model.CASCADE:用来删除关联数据,与之关联的数据也要删除
一对一跨表操作
OneToOneField把原本可以存储在一个表里的数据拆开分别放置在两个表中,将查询次数较多的字段放在一个表里,将查询次数较少的字段放在一个表里
OneToOneField有to和related_name两个属性