Skip to content

Commit

Permalink
Merge pull request #18 from mbox/bug_17_cached_querylist
Browse files Browse the repository at this point in the history
Fix for Bug #17 - caching doesn't work with get_queryList()
  • Loading branch information
MattBroach committed Oct 25, 2016
2 parents 02aa7c1 + f9483ef commit f4f39ef
Show file tree
Hide file tree
Showing 5 changed files with 117 additions and 70 deletions.
18 changes: 12 additions & 6 deletions drf_multiple_model/mixins.py
Expand Up @@ -49,8 +49,15 @@ def get_queryList(self):
)

queryList = self.queryList
qlist = []
for query in queryList:
if not isinstance(query, Query):
query = Query.new_from_tuple(query)
qs = query.queryset.all()
query.queryset = qs
qlist.append(query)

return queryList
return qlist

def paginate_queryList(self, queryList):
"""
Expand All @@ -70,9 +77,8 @@ def list(self, request, *args, **kwargs):
if not isinstance(query, Query):
query = Query.new_from_tuple(query)
# Run the queryset through Django Rest Framework filters
queryset = query.queryset.all()
queryset = self.filter_queryset(queryset)

queryset = self.filter_queryset(query.queryset)

# If there is a user-defined filter, run that too.
if query.filter_fn is not None:
queryset = query.filter_fn(queryset, request, *args, **kwargs)
Expand All @@ -87,7 +93,7 @@ def list(self, request, *args, **kwargs):
# Sort by given attribute, if sorting_attribute is provided
if self.sorting_field:
results = self.queryList_sort(results)

# Return paginated results if pagination is enabled
page = self.paginate_queryList(results)
if page is not None:
Expand Down Expand Up @@ -131,7 +137,6 @@ def format_data(self, new_data, query, results):

return results


# Sort based on the given sorting field property
def queryList_sort(self, results):
"""
Expand All @@ -154,6 +159,7 @@ def queryList_sort(self, results):


class Query(object):

def __init__(self, queryset, serializer, label=None, filter_fn=None, ):
self.queryset = queryset
self.serializer = serializer
Expand Down
1 change: 0 additions & 1 deletion drf_multiple_model/models.py
@@ -1,2 +1 @@
# Just to make django happy

0 comments on commit f4f39ef

Please sign in to comment.