From 99edbe0e279166db82caaf545ef92d5446a6a07e Mon Sep 17 00:00:00 2001 From: Tomek Paczkowski Date: Sun, 24 Feb 2013 12:58:02 +0100 Subject: Fixed #19253 -- Extracted template cache key building logic Introduced a public function django.core.cache.utils.make_template_fragment_key Thanks @chrismedrela for fruitful cooperation. --- django/core/cache/utils.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 django/core/cache/utils.py (limited to 'django/core/cache') 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()) -- cgit v1.3