Return a cache key from the headers given in the header list.
(request, method, headerlist, key_prefix)
| 349 | |
| 350 | |
| 351 | def _generate_cache_key(request, method, headerlist, key_prefix): |
| 352 | """Return a cache key from the headers given in the header list.""" |
| 353 | ctx = md5(usedforsecurity=False) |
| 354 | for header in headerlist: |
| 355 | value = request.META.get(header) |
| 356 | if value is not None: |
| 357 | ctx.update(value.encode()) |
| 358 | url = md5(request.build_absolute_uri().encode("ascii"), usedforsecurity=False) |
| 359 | cache_key = "views.decorators.cache.cache_page.%s.%s.%s.%s" % ( |
| 360 | key_prefix, |
| 361 | method, |
| 362 | url.hexdigest(), |
| 363 | ctx.hexdigest(), |
| 364 | ) |
| 365 | return _i18n_cache_key_suffix(request, cache_key) |
| 366 | |
| 367 | |
| 368 | def _generate_cache_header_key(key_prefix, request): |
no test coverage detected