Hi all, after mostly caching via external tools or manually for years, I've been trying out Django's built-in caching recently, and have ran into an issue that I believe could improve the use cases of `cache_page` a lot:
`cache_page`/`CacheMiddleware` take an optional `key_prefix` argument as a string, falling back to `settings.CACHE_MIDDLEWARE_KEY_PREFIX`. If this argument could be a callable (getting the current request as argument), it would be much easier to cache different versions of the page, for example for users with different access rights, or to make sure newer changes are reflected by including a version or timestamp in the cache key. This change was proposed, uhm, 13 years ago, and was closed when the key_prefix became a site-wide setting. Any arguments for/against re-opening? https://code.djangoproject.com/ticket/11269 Additionally, for several of my use cases it would have been very neat to be able to determine the cache key myself, which is currently generated fairly deep into the caching stack based on the prefix, the request and so on. While that's a good default, it makes it harder to interact with the cache from outside the request-response cycle for the view being cached. (But that's a bigger ask, because there's less existing infrastructure to pass down a changed key function – I'd be pretty happy with just a dynamic prefix.) Best, Tobias -- Tobias Kunze / rixx (er/he) -- You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-developers+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/20220122153731.4beyiyepuahiprgu%40cordelia.localdomain.