Do Django generic foreign key lookups in one query
Django Fast Generic Foreign Keys
Generic foreign keys are incredibly powerful but can’t be prefetched, leading to a large number of SQL queries when accessing a generic foreign key field while iterating over a queryset. This app provides a function that reduces the number of SQL queries to 1 + (number of content types included in the set of generic foreign keys).
Install or add django-fast-gfk to your Python path.
The fetch function returns a generator with the generic foreign key prefetched. Parameter field is the name of the generic foreign key.:
from fast_gfk import fetch fetch(Bar.objects.all(), field="target"))
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.