[PATCH] Drastically reduce loading time of Todo lists

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



Use Django's select_related() on the TodolistPkg QuerySet to avoid
making 4 database queries per package. This way we're making just one
query, regardless of the number of packages in the Todo list.

Local testing with 1000 entries in a Todo list show that the loading
time has been reduced from 2675 ms to around 560 ms, while the number of
queries has been cut down from 8005, to only 5.
---
 main/models.py |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/main/models.py b/main/models.py
index f645804..1b08e1e 100644
--- a/main/models.py
+++ b/main/models.py
@@ -303,7 +303,7 @@ class Todolist(models.Model):
 
     @property
     def packages(self):
-        return TodolistPkg.objects.filter(list=self.id).order_by('pkg')
+        return TodolistPkg.objects.select_related().filter(list=self).order_by('pkg')
 
     @property
     def package_names(self):
-- 
1.6.6.1



[Index of Archives]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux