API: leave notes on get_object's future

This commit is contained in:
Klaas van Schelven
2025-09-18 13:21:53 +02:00
parent 3f6e062bed
commit 4d3756f621
4 changed files with 4 additions and 0 deletions

View File

@@ -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

View File

@@ -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()

View File

@@ -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]})

View File

@@ -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]})