From 0497b7e68d3e39f36212fc53bedf202d43635f2a Mon Sep 17 00:00:00 2001 From: S4NKALP Date: Mon, 29 Jun 2026 07:20:29 +0545 Subject: [PATCH] refactor(src/projects): cache role names in role_display_name Prevent repeated DB hits by caching Role objects and names. --- src/projects/models.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/projects/models.py b/src/projects/models.py index d621a92..30add2f 100644 --- a/src/projects/models.py +++ b/src/projects/models.py @@ -116,9 +116,10 @@ class BoardRolePermission(models.Model): @property def role_display_name(self): - from src.accounts.models import Role + if not hasattr(BoardRolePermission, "_role_names"): + from src.accounts.models import Role - try: - return Role.objects.get(slug=self.role).name - except Role.DoesNotExist: - return self.role + BoardRolePermission._role_names = { + r.slug: r.name for r in Role.objects.only("slug", "name") + } + return BoardRolePermission._role_names.get(self.role, self.role)