Django ORM正向查询和反向查询

我们在创建一对多的关联表时,把外键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两个属性

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值