Our view is taking too long to render, can anyone offer suggestions to
improve its speed?
There are 5830 profiles.
Total query count: 23809
Total duplicate query count: 493
Total SQL execution time: 66.003
Total Request execution time: 142.931
class Profile(Model):
id = UUIDField(primary_key=True)
user = ForeignKey(User, verbose_name=_('user'), unique=True,
null=True)
partner = ForeignKey('Partner')
call_records = ManyToManyField('CallRecord', verbose_name=_('call
record'), null=True, blank=True, help_text='Calls made by the user')
class Partner(Model):
id = UUIDField(primary_key=True)
name = CharField(max_length=255, help_text='The name for the
partner')
users = ManyToManyField(User, related_name='partner_users',
null=True, blank=True, help_text='Users signed up specifically through
this partner')
providers = ManyToManyField('Provider',
related_name='provider_partners', blank=True, null=True,
help_text="Calling services owned by this provider.")
calls = ManyToManyField('CallRecord',
related_name='call_partners', blank=True, null=True, help_text='Calls
made through this calling service.')
class CallRecord(Model):
id = UUIDField(primary_key=True)
provider_account = ForeignKey('ProviderAccount', null=True,
blank=True, help_text='The calling service, if any, the call was made
through')
provider = ForeignKey('Provider', blank=True, null=True,
help_text='The calling service the call was made through')
class Provider(Model):
id = UUIDField(primary_key=True)
name = CharField(max_length=255)
class ProviderAccount(Model):
provider = ForeignKey('Provider', help_text='The calling service
this account works with')
username = TextField()
encrypted_password = TextField(db_column='password')
user = ForeignKey(User, help_text='The user this calling service
account belongs to')
profiles =
Profile
.objects
.filter(partner=request.partner,user__is_active=True).order_by('-
user__date_joined')
for p in profiles:
p.provider_list = list(
account.provider for account in
ProviderAccount
.objects
.filter(user=p.user,provider__provider_partners=request.partner))
p.call_count = p.call_records.filter().count()
return PartnerResponse(request, {'profiles': profiles})
PartnerResponse returns the view to the user, the template uses a for
loop to iterate through the profiles.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Django users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---