# 940 querys
object_list = Payment.objects.all()
# 8 querys
from django.db.models import Prefetch
object_list = Payment.objects.\
select_related(
'business'
).prefetch_related(
Prefetch(
'vouchers',
queryset=Voucher.objects.select_related('payment')
)
).all()
class Business(models.Model):
name = models.CharField()
class Payment(models.Model):
name = models.CharField()
date = models.DateTimeField()
business = models.ForeignKey(
Business,
on_delete=models.PROTECT
)
class Voucher(ModelIterable):
name = models.CharField()
payment = models.ForeignKey(
Payment,
on_delete=models.PROTECT,
related_name="vouchers"
)