Попробуйте что-то вроде
CreditStatus.objects.select_related(
'credit'
).filter(status='ACTIVE').prefetch_related('credit__creditcommision')
Это приведет к тому, что все кредитные комиссии будут размещены в пределах all
. так, например,
credit_statuses = CreditStatus.objects.select_related(
'credit'
).filter(status='ACTIVE').prefetch_related('credit__creditcommision')
for credit_status in credit_statuses:
for commission in credit_status.creditcommision.all():
print(commission)
будет запускать только попадание в базу данных только дважды, один раз, чтобы получить кредитные статусы с их кредитами, и второй, который принесет все кредитные комиссии, связанные с отфильтрованными кредитными статусами.
Вы проверяете примеры в документации