@@ -79,6 +79,9 @@ class PlayersViewSet(FiltersMixin, viewsets.ModelViewSet):
7979 This viewset automatically provides `list`, `create`, `retrieve`,
8080 `update` and `destroy` actions.
8181 """
82+ queryset = Player.objects.prefetch_related(
83+ ' teams' # use prefetch_related to minimize db hits.
84+ ).all()
8285 serializer_class = PlayerSerializer
8386 pagination_class = ResultSetPagination
8487 filter_backends = (filters.OrderingFilter,)
@@ -103,30 +106,6 @@ class PlayersViewSet(FiltersMixin, viewsets.ModelViewSet):
103106
104107 # add validation on filters
105108 filter_validation_schema = players_query_schema
106-
107- def get_queryset (self ):
108- """
109- Optionally restricts the queryset by filtering against
110- query parameters in the URL.
111- """
112- query_params = self .request.query_params
113- url_params = self .kwargs
114-
115- # get queryset_filters from FilterMixin
116- queryset_filters = self .get_db_filters(url_params, query_params)
117-
118- # This dict will hold filter kwargs to pass in to Django ORM calls.
119- db_filters = queryset_filters[' db_filters' ]
120-
121- # This dict will hold exclude kwargs to pass in to Django ORM calls.
122- db_excludes = queryset_filters[' db_excludes' ]
123-
124- # fetch queryset from Players model
125- queryset = Player.objects.prefetch_related(
126- ' teams' # use prefetch_related to minimize db hits.
127- ).all()
128-
129- return queryset.filter(** db_filters).exclude(** db_excludes)
130109```
131110
132111With the use of ` drf-url-filters ` adding a new filter on a new column is as
0 commit comments