From 5e5de9c499b95fdfd32ec20853bb4732c4c71d31 Mon Sep 17 00:00:00 2001 From: George Hickman Date: Tue, 2 Apr 2013 10:46:48 +0100 Subject: [PATCH] Only preemptively check the cache on GET requests --- rest_framework/mixins.py | 4 ++++ rest_framework/views.py | 1 - 2 files changed, 4 insertions(+), 1 deletion(-) 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)