From b4ab0e40e132b23a53129b8ea0255acb9a0228a4 Mon Sep 17 00:00:00 2001 From: Andrew Williams Date: Mon, 18 Oct 2010 16:09:25 +0100 Subject: [PATCH] Optimize the user_view view, slashing the render time in half --- sso/views.py | 20 +++----------------- templates/sso/lookup/user.html | 2 +- 2 files changed, 4 insertions(+), 18 deletions(-) diff --git a/sso/views.py b/sso/views.py index 82479c4..72319a5 100644 --- a/sso/views.py +++ b/sso/views.py @@ -279,23 +279,9 @@ def user_view(request, username=None): profile = user.get_profile() is_admin = request.user.is_staff if is_admin: - try: - services = ServiceAccount.objects.filter(user=user).all() - except ServiceAccount.DoesNotExist: - services = None - try: - reddits = RedditAccount.objects.filter(user=user).all() - except ServiceAccount.DoesNotExist: - reddits = None - try: - eveaccounts = EVEAccount.objects.filter(user=user).all() - characters = [] - for acc in eveaccounts: - chars = acc.characters.all() - for char in chars: - characters.append({'id': char.id, 'name': char.name, 'corp': char.corporation.name}) - except EVEAccount.DoesNotExist: - eveaccounts = None + services = ServiceAccount.objects.select_related('service').filter(user=user).only('service__name', 'service_uid', 'active') + reddits = RedditAccount.objects.filter(user=user).all() + characters = EVEPlayerCharacter.objects.select_related('corporation').filter(eveaccount__user=user).only('id', 'name', 'corporation__name') return render_to_response('sso/lookup/user.html', locals(), context_instance=RequestContext(request)) diff --git a/templates/sso/lookup/user.html b/templates/sso/lookup/user.html index f7587f3..8903512 100644 --- a/templates/sso/lookup/user.html +++ b/templates/sso/lookup/user.html @@ -57,7 +57,7 @@ Character NameCorp {% for char in characters %} {{ char.name }} - {{ char.corp }} + {{ char.corporation }} {% endfor %}