summaryrefslogtreecommitdiff
path: root/django/core/cache
diff options
context:
space:
mode:
Diffstat (limited to 'django/core/cache')
-rw-r--r--django/core/cache/utils.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/django/core/cache/utils.py b/django/core/cache/utils.py
new file mode 100644
index 0000000000..4310825ad4
--- /dev/null
+++ b/django/core/cache/utils.py
@@ -0,0 +1,15 @@
+from __future__ import absolute_import, unicode_literals
+
+import hashlib
+from django.utils.encoding import force_bytes
+from django.utils.http import urlquote
+
+TEMPLATE_FRAGMENT_KEY_TEMPLATE = 'template.cache.%s.%s'
+
+
+def make_template_fragment_key(fragment_name, vary_on=None):
+ if vary_on is None:
+ vary_on = ()
+ key = ':'.join([urlquote(var) for var in vary_on])
+ args = hashlib.md5(force_bytes(key))
+ return TEMPLATE_FRAGMENT_KEY_TEMPLATE % (fragment_name, args.hexdigest())