diff --git a/src/registrar/management/commands/create_federal_portfolio.py b/src/registrar/management/commands/create_federal_portfolio.py index 706d05364..67983568b 100644 --- a/src/registrar/management/commands/create_federal_portfolio.py +++ b/src/registrar/management/commands/create_federal_portfolio.py @@ -201,19 +201,18 @@ class Command(BaseCommand): domain_managers: set[int] = set() # Fetch all users with manager roles for the domains - managers = UserDomainRole.objects.filter(domain__in=domains, role=UserDomainRole.Roles.MANAGER).values_list( - "user", flat=True - ) + # select_related means that a db query will not be occur when you do user_domain_role.user + # Its similar to a set or dict in that it costs slightly more upfront in exchange for perf later + user_domain_roles = UserDomainRole.objects.select_related("user").filter(domain__in=domains, role=UserDomainRole.Roles.MANAGER) domain_managers.update(managers) invited_managers: set[str] = set() # Get the emails of invited managers - for domain in domains: - domain_invitations = DomainInvitation.objects.filter( - domain=domain, status=DomainInvitation.DomainInvitationStatus.INVITED - ).values_list("email", flat=True) - invited_managers.update(domain_invitations) + domain_invitations = DomainInvitation.objects.filter( + domain__in=domains, status=DomainInvitation.DomainInvitationStatus.INVITED + ).values_list("email", flat=True) + invited_managers.update(domain_invitations) for id in domain_managers: try: