Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Django prefetch_related From Model With Multiple ManyToMany Relationships

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?

like image 858
mitchfuku Avatar asked Sep 16 '13 01:09

mitchfuku


1 Answers

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

like image 105
jproffitt Avatar answered Oct 13 '22 18:10

jproffitt