Browse Source

Fix three N+1 queries in pin loading

Fetch the submitter with a join and get all the images and tags in one
query each. This reduces the total query count for loading 50 pins from
304 to 158.

See issue #85.
pull/86/head
Jens Gutermuth 9 years ago
parent
commit
60cf2dcbd7
1 changed files with 2 additions and 1 deletions
  1. +2
    -1
      pinry/core/api.py

+ 2
- 1
pinry/core/api.py View File

@@ -135,7 +135,8 @@ class PinResource(ModelResource):
filtering = { filtering = {
'submitter': ALL_WITH_RELATIONS 'submitter': ALL_WITH_RELATIONS
} }
queryset = Pin.objects.all()
queryset = Pin.objects.all().select_related('submitter'). \
prefetch_related('image', 'tags')
resource_name = 'pin' resource_name = 'pin'
include_resource_uri = False include_resource_uri = False
always_return_data = True always_return_data = True


Loading…
Cancel
Save