Django: использование prefetch_related

У меня есть несколько моделей с таким отношением:

EmailReport --many-to-many--> PaymentReport --foreign-key--> Shop --many-to-many--> users

Теперь я хочу получить доступ к пользователям из EmailReport. Я попробовал выполнить этот запрос, но неудачно:

query = models.EmailReport.objects.prefetch_related('payment_report').prefetch_related('shop__users').filter(pk__in=ids)

Кто-нибудь знает правильный запрос?

Обновление:

Спасибо @bartosz-stasiak Запрос следующий:

objects= EmailReport.objects.prefetch_related('payment_report__shop__users').filter(pk__in=ids)

Но как я могу получить доступ к пользователям prepetch? Пробовал это и не получилось:

objects= EmailReport.objects.prefetch_related('payment_report__shop__users').filter(pk__in=ids)
for object in objects:
   object.users.all()

Вероятно:

email_reports = EmailReport.objects.prefetch_related('payment_report__shop__users').filter(pk__in=ids)

(Что здесь ids? ID пользователя или EmailReport?)

Это должно быть минимальное количество запросов. Просто помните, что вы не можете выполнять дальнейшую фильтрацию, иначе это нарушит предварительную выборку.

Тогда есть несколько способов получить пользователей. Самый простой, вероятно, будет: (но может быть неэффективным)

users_from_query = []
for email_report in email_reports:
    for pr in email_report.payment_report.all()
        users_from_query.extend(pr.shop.users.all())
Вернуться на верх