prefetch_related with slices

73 views
Skip to first unread message

אורי

unread,
Sep 18, 2020, 1:01:43 PM9/18/20
to django...@googlegroups.com
Hi,

I have a code with a query:
qs = User.objects.active(
gender__in=user.speedy_match_profile.gender_to_match,
diet__in=user.speedy_match_profile.diet_to_match,
smoking_status__in=user.speedy_match_profile.smoking_status_to_match,
relationship_status__in=user.speedy_match_profile.relationship_status_to_match,
speedy_match_site_profile__gender_to_match__contains=[user.gender],
speedy_match_site_profile__diet_to_match__contains=[user.diet],
speedy_match_site_profile__smoking_status_to_match__contains=[user.smoking_status],
speedy_match_site_profile__relationship_status_to_match__contains=[user.relationship_status],
date_of_birth__range=age_ranges,
speedy_match_site_profile__min_age_to_match__lte=user.get_age(),
speedy_match_site_profile__max_age_to_match__gte=user.get_age(),
speedy_match_site_profile__height__range=(self.model.settings.MIN_HEIGHT_TO_MATCH, self.model.settings.MAX_HEIGHT_TO_MATCH),
speedy_match_site_profile__not_allowed_to_use_speedy_match=False,
speedy_match_site_profile__active_languages__contains=[language_code],
).exclude(
pk__in=[user.pk] + blocked_users_ids + blocking_users_ids,
).prefetch_related(
"likes_to_user",
"friends",
).order_by('-speedy_match_site_profile__last_visit')
user_list = qs[:2400]
matches_list = []
for other_user in user_list:
    ... # The rest of my code.

I'm using prefetch_related and I also limit the query to the first 2,400 users. So if, for example, there are 24,000 users in the original query - will the  prefetch_related function be executed for all of them, or only the first 2,400? I think it should be 2,400 but I can't find it documented. Do you know where is the documentation for this?

Thanks,
Uri.

misraX x

unread,
Sep 19, 2020, 11:15:11 AM9/19/20
to django...@googlegroups.com
I believe you are searching for queryset and SQL limits, if so take a look at 

--


You received this message because you are subscribed to the Google Groups "Django users" group.


To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com.


To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CABD5YeGjP%2BwDN6AWAz-3L2f4fUvjoh7k8hxTr3jTy1bcZtyWOA%40mail.gmail.com.


אורי

unread,
Sep 19, 2020, 8:33:34 PM9/19/20
to django...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages