zoukankan      html  css  js  c++  java
  • Django之ORM正反向查询

    Django之ORM正反向查询

    在orm查询中,一般分为正向查询和反向查询。至于什么是正向查询和反向查询,还要从表关系说起。
    举个简单的例子,就拿图书和出版社来说,一般一个图书只有一个出版社,但是一个图书一般有多个图书,外键关系一般建立在多的一侧,也就是说,外键关系是建立在图书的表模型中的。
    image
    而正向查询就是从多的一侧出发,即图书表出发去查找。举例如下:查找出版社为出版社1的图书。

    obj = models.Book.objects.filter(publisher__name='出版社1')
    

    反向查询则是与之相反,从少的一次出发进行查找。反向查询操作如下:

    obj = models.Publisher.objects.get(id=1)  # 假设出版社1的id为1
    obj.book_set.all()
    
    • 方式一
      image
    • 方式二
      image
      当设置了related_name以后就无法使用_set这个用法。因为_set为默认的,当设置了related_name以后就会覆盖掉_set这个用法法导致无法使用。related_name就是为了方便反向查询而设置的。
  • 相关阅读:
    创意:网络族谱
    排列组合的要点
    创意:人生记录
    纽康悖论谜题
    发财的要点
    c#4.0协变逆变的理解
    关于开发自我训练课程
    反对继承
    远离疲倦,告别非理性思维
    中国软件正版化的理想模型
  • 原文地址:https://www.cnblogs.com/ZN-225/p/14558821.html
Copyright © 2011-2022 走看看