perf: 优化 api sql 查询

This commit is contained in:
ibuler
2023-02-07 16:21:26 +08:00
parent 47c5f18c6e
commit e7202ac984
13 changed files with 150 additions and 104 deletions

View File

@@ -87,7 +87,11 @@ class QuerySetMixin:
def get_queryset(self):
queryset = super().get_queryset()
if hasattr(self, 'action') and (self.action == 'list' or self.action == 'metadata'):
if not hasattr(self, 'action'):
return queryset
if self.action == 'metadata':
queryset = queryset.none()
if self.action in ['list', 'metadata']:
serializer_class = self.get_serializer_class()
if serializer_class and hasattr(serializer_class, 'setup_eager_loading'):
queryset = serializer_class.setup_eager_loading(queryset)