Little optimisation to avoid too many orm requests
authorcavaliet
Mon, 18 Mar 2013 11:54:47 +0100
changeset 1130 94f1dea77347
parent 1129 33643d573307
child 1131 12449faa8a77
Little optimisation to avoid too many orm requests
src/ldt/ldt/ldt_utils/views/project.py
--- a/src/ldt/ldt/ldt_utils/views/project.py	Fri Mar 15 12:31:24 2013 +0100
+++ b/src/ldt/ldt/ldt_utils/views/project.py	Mon Mar 18 11:54:47 2013 +0100
@@ -242,9 +242,9 @@
     else:
         # We paginate in these cases : user's project or published
         if status==2:
-            project_list = Project.safe_objects.filter(query).exclude(title__startswith='front')
+            project_list = Project.safe_objects.filter(query).select_related("owner").exclude(title__startswith='front')
         else:
-            project_list = Project.safe_objects.filter(query)
+            project_list = Project.safe_objects.filter(query).select_related("owner")
         project_nb = float(project_list.count()) #@UndefinedVariable
         nb_pj_pages = int(math.ceil(project_nb / settings.LDT_MAX_PROJECTS_PER_PAGE))
         project_list = project_list[(num_page*settings.LDT_MAX_PROJECTS_PER_PAGE):((num_page+1)*settings.LDT_MAX_PROJECTS_PER_PAGE)] #@UndefinedVariable
@@ -281,7 +281,8 @@
 def get_projects_page(num_page, user):
     project_nb = float(Project.safe_objects.filter(owner=user).count()) #@UndefinedVariable
     nb_pj_pages = int(math.ceil(project_nb / settings.LDT_MAX_PROJECTS_PER_PAGE))
-    project_list = add_change_attr(user, Project.safe_objects.filter(owner=user)[(num_page*settings.LDT_MAX_PROJECTS_PER_PAGE):((num_page+1)*settings.LDT_MAX_PROJECTS_PER_PAGE)]) #@UndefinedVariable
+    # add_change_attr is not useful because user and project's owner are the same
+    project_list = Project.safe_objects.filter(owner=user).select_related("owner")[(num_page*settings.LDT_MAX_PROJECTS_PER_PAGE):((num_page+1)*settings.LDT_MAX_PROJECTS_PER_PAGE)] #@UndefinedVariable
     return project_nb, nb_pj_pages, project_list