Django prefetch_related From Model With Multiple ManyToMany Relationships

Question:

Say I have a few models in Django:

class Foo(models.Model):
    bars = models.ManyToManyField(Bar)
    bazs = models.ManyToManyField(Baz)

class Bar(models.Model):
    quxs = models.ManyToManyField(Qux)

I can use prefetch_related to get all Bars belonging to Foo and all Quxs belonging to Bar with:

Foo.objects.prefetch_related('bars__quxs')

But how can I use prefetch_related to get this information as well as all the Bazs belonging to Foo? Would something like:

Foo.objects.prefetch_related('bars__quxs', 'bazs')

work?

Asked By: mitchfuku

||

Answers:

Yes. You can pass in multiple lookups to .prefetch_related()

Answered By: jproffitt
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.