Kaydet (Commit) 551a0272 authored tarafından Adrian Holovaty's avatar Adrian Holovaty

Fixed #2189 -- Optimized auth.User.get_all_permissions() to use select_related…

Fixed #2189 -- Optimized auth.User.get_all_permissions() to use select_related behind the scenes to avoid multiple queries. Thanks, konrad@gwu.edu

git-svn-id: http://code.djangoproject.com/svn/django/trunk@3162 bcc190cf-cafb-0310-a4f2-bffc1f526a37
üst 496d6515
...@@ -74,6 +74,7 @@ answer newbie questions, and generally made Django that much better: ...@@ -74,6 +74,7 @@ answer newbie questions, and generally made Django that much better:
Cameron Knight (ckknight) Cameron Knight (ckknight)
Bruce Kroeze <http://coderseye.com/> Bruce Kroeze <http://coderseye.com/>
Joseph Kocherhans Joseph Kocherhans
konrad@gwu.edu
lakin.wecker@gmail.com lakin.wecker@gmail.com
Stuart Langridge <http://www.kryogenix.org/> Stuart Langridge <http://www.kryogenix.org/>
Eugene Lazutkin <http://lazutkin.com/blog/> Eugene Lazutkin <http://lazutkin.com/blog/>
......
...@@ -160,7 +160,7 @@ class User(models.Model): ...@@ -160,7 +160,7 @@ class User(models.Model):
def get_all_permissions(self): def get_all_permissions(self):
if not hasattr(self, '_perm_cache'): if not hasattr(self, '_perm_cache'):
import sets import sets
self._perm_cache = sets.Set(["%s.%s" % (p.content_type.app_label, p.codename) for p in self.user_permissions.all()]) self._perm_cache = sets.Set(["%s.%s" % (p.content_type.app_label, p.codename) for p in self.user_permissions.select_related()])
self._perm_cache.update(self.get_group_permissions()) self._perm_cache.update(self.get_group_permissions())
return self._perm_cache return self._perm_cache
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment