diff --git a/rest_framework/mixins.py b/rest_framework/mixins.py index a0fc51e35..e5de46abb 100644 --- a/rest_framework/mixins.py +++ b/rest_framework/mixins.py @@ -97,6 +97,10 @@ class RetrieveModelMixin(object): Should be mixed in with `SingleObjectAPIView`. """ def retrieve(self, request, *args, **kwargs): + cached_object = self.check_preemptive_cache(request) + if cached_object: + return cached_object + queryset = self.get_queryset() filtered_queryset = self.filter_queryset(queryset) self.object = self.get_object(filtered_queryset) diff --git a/rest_framework/views.py b/rest_framework/views.py index 0c780be74..4caec27c0 100644 --- a/rest_framework/views.py +++ b/rest_framework/views.py @@ -350,7 +350,6 @@ class APIView(View): self.perform_authentication(request) self.check_permissions(request) self.check_throttles(request) - self.check_preemptive_cache(request) # Perform content negotiation and store the accepted info on the request neg = self.perform_content_negotiation(request)