代码之家  ›  专栏  ›  技术社区  ›  Vishal

带相关模型的Django查询

  •  2
  • Vishal  · 技术社区  · 16 年前

    对于以下型号:

    class Customer(models.Model):
        id = models.IntegerField(primary_key=True)
    
    class OrderA(models.Model):
        name = models.CharField(max_length=20)
        foo = models.FloatField()
        customer = models.ForeignKey(Customer)
        type = models.IntegerField()
    
    class OrderB(models.Model):
        name = models.CharField(max_length=20)
        customer = models.ForeignKey(Customer)
        type = models.IntegerField()
    

    我想在一个条件中一次性获取所有客户对象及其相关的ordera和orderb对象(其中键入ordera和orderb等于1)

    2 回复  |  直到 12 年前
        1
  •  -1
  •   Daniel Roseman    16 年前

    你对伊格纳西奥的评论是对的 select_related 工作方向相反。

    我写过一个方法来做这个方向 on my blog (对不起插头)。

        2
  •  2
  •   Grijesh Chauhan Anand Krishnan    12 年前

    select_related() 将预填充适当的属性:

    Customer.objects.filter(ordera_set__type=1, orderb_set__type=1).select_related()