Django查询相关模型

时间:2010-03-10 22:16:47

标签: python django

以下型号:

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()

我想一次性获取所有Customer对象及其相关的OrderA和OrderB对象的条件(其中OrderA和OrderB中的类型等于1)

2 个答案:

答案 0 :(得分:2)

select_related()会预先填充相应的属性:

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

答案 1 :(得分:-1)

你对Ignacio的评论是正确的,select_related在相反的方向上工作。

我已经写过关于这个方向的技术on my blog(抱歉插件)。