Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tswicegood/93959fa759240be0ee1a to your computer and use it in GitHub Desktop.
Save tswicegood/93959fa759240be0ee1a to your computer and use it in GitHub Desktop.
From ff92697fc17bb8c3948cb349fbdc05ef8cf51a7d Mon Sep 17 00:00:00 2001
From: Travis Swicegood <development@domain51.com>
Date: Sun, 1 Mar 2009 12:39:49 -0600
Subject: [PATCH] Remove duplication of creation of cache header key
Complete bike shed commit, but in tinkering around in this code I noticed
the generation of header cache key was duplicated. This extracts that code
into the _generate_cache_header_key() function.
---
django/utils/cache.py | 11 +++++++----
1 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/django/utils/cache.py b/django/utils/cache.py
index 9c566ae..389c5a1 100644
--- a/django/utils/cache.py
+++ b/django/utils/cache.py
@@ -146,6 +146,11 @@ def _generate_cache_key(request, headerlist, key_prefix):
return 'views.decorators.cache.cache_page.%s.%s.%s' % (
key_prefix, iri_to_uri(request.path), ctx.hexdigest())
+def _generate_cache_header_key(key_prefix, request):
+ """Returns a cache key for the header cache."""
+ return 'views.decorators.cache.cache_header.%s.%s' % (
+ key_prefix, iri_to_uri(request.path))
+
def get_cache_key(request, key_prefix=None):
"""
Returns a cache key based on the request path. It can be used in the
@@ -158,8 +163,7 @@ def get_cache_key(request, key_prefix=None):
"""
if key_prefix is None:
key_prefix = settings.CACHE_MIDDLEWARE_KEY_PREFIX
- cache_key = 'views.decorators.cache.cache_header.%s.%s' % (
- key_prefix, iri_to_uri(request.path))
+ cache_key = _generate_cache_header_key(key_prefix, request)
headerlist = cache.get(cache_key, None)
if headerlist is not None:
return _generate_cache_key(request, headerlist, key_prefix)
@@ -183,8 +187,7 @@ def learn_cache_key(request, response, cache_timeout=None, key_prefix=None):
key_prefix = settings.CACHE_MIDDLEWARE_KEY_PREFIX
if cache_timeout is None:
cache_timeout = settings.CACHE_MIDDLEWARE_SECONDS
- cache_key = 'views.decorators.cache.cache_header.%s.%s' % (
- key_prefix, iri_to_uri(request.path))
+ cache_key = _generate_cache_header_key(key_prefix, request)
if response.has_header('Vary'):
headerlist = ['HTTP_'+header.upper().replace('-', '_')
for header in cc_delim_re.split(response['Vary'])]
--
1.6.1.2.390.gba743+GitX
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment