diff options
| author | Tomek Paczkowski <tomek@hauru.eu> | 2013-02-24 12:58:02 +0100 |
|---|---|---|
| committer | Honza Kral <honza.kral@gmail.com> | 2013-02-24 14:32:45 +0100 |
| commit | 99edbe0e279166db82caaf545ef92d5446a6a07e (patch) | |
| tree | 495785ea6bca5f1c94881d624b622b1d6ea93b30 /django/core | |
| parent | b9cc61021a0db1e5b41e61d3e53180e4fc618f9c (diff) | |
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.
Diffstat (limited to 'django/core')
| -rw-r--r-- | django/core/cache/utils.py | 15 |
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()) |
