Closes #5549: Eliminate extraneous database queries when using brief API calls

This commit is contained in:
Jeremy Stretch
2020-12-29 11:41:44 -05:00
parent b2e05aafc1
commit 8ae3331d04
5 changed files with 41 additions and 21 deletions

View File

@@ -39,7 +39,6 @@ class ConfigContextQuerySetMixin:
Provides a get_queryset() method which deals with adding the config context
data annotation or not.
"""
def get_queryset(self):
"""
Build the proper queryset based on the request context
@@ -49,11 +48,11 @@ class ConfigContextQuerySetMixin:
Else, return the queryset annotated with config context data
"""
queryset = super().get_queryset()
request = self.get_serializer_context()['request']
if request.query_params.get('brief') or 'config_context' in request.query_params.get('exclude', []):
return self.queryset
return self.queryset.annotate_config_context_data()
if self.brief or 'config_context' in request.query_params.get('exclude', []):
return queryset
return queryset.annotate_config_context_data()
#