以下型号:
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)
答案 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(抱歉插件)。