简体   繁体   中英

Django query with related models

For the below models:

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

I want to grab all the Customer objects with their related OrderA and OrderB objects in one go for a condition (where type in OrderA and OrderB equals 1)

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

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

You're right in your comment to Ignacio that select_related works in the opposite direction.

I've written about a technique to do it in this direction on my blog (sorry about the plug).

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM