Mercurial > public > sg101
diff gpp/forums/views/main.py @ 349:a43add8af83d
Fix #171; forums weren't assigning badge ownership correctly when pre-fetching data.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Wed, 02 Mar 2011 02:34:57 +0000 |
parents | 000c006fee97 |
children | dd673fae508d |
line wrap: on
line diff
--- a/gpp/forums/views/main.py Wed Mar 02 02:18:28 2011 +0000 +++ b/gpp/forums/views/main.py Wed Mar 02 02:34:57 2011 +0000 @@ -181,6 +181,7 @@ users = set(post.user.id for post in page.object_list) profiles = UserProfile.objects.filter(user__id__in=users).select_related() + profile_keys = [profile.id for profile in profiles] user_profiles = dict((profile.user.id, profile) for profile in profiles) for post in page.object_list: @@ -190,13 +191,13 @@ # Attach badge ownership info to the user profiles to avoid lots # of database hits in the template: bos_qs = BadgeOwnership.objects.filter( - profile__id__in=user_profiles.keys()).select_related() + profile__id__in=profile_keys).select_related() bos = collections.defaultdict(list) for bo in bos_qs: bos[bo.profile.id].append(bo) - for pk, profile in user_profiles.iteritems(): - profile.badge_ownership = bos[pk] + for user_id, profile in user_profiles.iteritems(): + profile.badge_ownership = bos[profile.id] # Attach any attachments post_ids = [post.pk for post in page.object_list]