summaryrefslogtreecommitdiff
path: root/django/core/cache/utils.py
blob: e9e144275f46f957285aa38be4ae3587980b5547 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import hashlib
from urllib.parse import quote

from django.utils.encoding import force_bytes

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(quote(str(var)) for var in vary_on)
    args = hashlib.md5(force_bytes(key))
    return TEMPLATE_FRAGMENT_KEY_TEMPLATE % (fragment_name, args.hexdigest())