diff --git a/events/api_views.py b/events/api_views.py index 7a29624..555401c 100644 --- a/events/api_views.py +++ b/events/api_views.py @@ -70,6 +70,7 @@ class EventViewSet(AtomicRequestMixin, viewsets.ReadOnlyModelViewSet): """ DRF's get_object(), but we intentionally bypass filter_queryset for detail routes to keep PK lookups db-index-friendly (no WHERE filters other than the PK which is already indexed). + # NOTE: alternatively, we just complain hard when a filter is applied to a detail view. """ queryset = self.get_queryset() # no filter_queryset() here diff --git a/issues/api_views.py b/issues/api_views.py index 8d9f458..0054f58 100644 --- a/issues/api_views.py +++ b/issues/api_views.py @@ -117,6 +117,7 @@ class IssueViewSet(AtomicRequestMixin, viewsets.ReadOnlyModelViewSet): """ DRF's get_object(), but bypass filter_queryset for detail. """ + # NOTE: alternatively, we just complain hard when a filter is applied to a detail view. # TODO: copy/paste from events/api_views.py queryset = self.get_queryset() diff --git a/projects/api_views.py b/projects/api_views.py index 37bab3d..0d63729 100644 --- a/projects/api_views.py +++ b/projects/api_views.py @@ -65,6 +65,7 @@ class ProjectViewSet(AtomicRequestMixin, ExpandViewSetMixin, viewsets.ModelViewS def get_object(self): # Pure PK lookup (bypass filter_queryset) + # NOTE: alternatively, we just complain hard when a filter is applied to a detail view. queryset = self.get_queryset() lookup_url_kwarg = self.lookup_url_kwarg or self.lookup_field obj = get_object_or_404(queryset, **{self.lookup_field: self.kwargs[lookup_url_kwarg]}) diff --git a/teams/api_views.py b/teams/api_views.py index 1531fe8..a97cea5 100644 --- a/teams/api_views.py +++ b/teams/api_views.py @@ -35,6 +35,7 @@ class TeamViewSet(AtomicRequestMixin, viewsets.ModelViewSet): def get_object(self): # Pure PK lookup (bypass filter_queryset) + # NOTE: alternatively, we just complain hard when a filter is applied to a detail view. queryset = self.get_queryset() lookup_url_kwarg = self.lookup_url_kwarg or self.lookup_field obj = get_object_or_404(queryset, **{self.lookup_field: self.kwargs[lookup_url_kwarg]})