#33604: Allow `CacheMiddleware.key_prefix` to be a callable
-------------------------------------+-------------------------------------
Reporter: Alexandru | Owner: nobody
Mărășteanu |
Type: New feature | Status: new
Component: Core (Cache system) | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage:
| Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Comment (by Alexandru Mărășteanu):
Replying to [comment:1 Mariusz Felisiak]:
> Thanks for the ticket. Dynamic prefixes are not supported, however you
can use the [https://docs.djangoproject.com/en/stable/topics/cache/#cache-
key-transformation KEY_FUNCTION] cache setting and changed `key_prefix`
dynamically. I'm not convinced that we really need another option here.
The need is to cache dynamically depending on the current request, on
request properties like the user, or the query params etc. One of my use
cases is to cache pages for anonymous users only. Another one is to cache
pages based on some value stored in Redis. Another thing I want to do is
to force it to skip the cache based on a query param (appending a random
value is not always possible). Currently I do this with a custom
middleware which extends the builtin one and simply updates
`self.key_prefix` at the appropriate times. It seems to me it's a small
change with great utility.
The `KEY_FUNCTION` would be useful here if it received the request. But
allowing a callable `key_prefix` is a lot cheaper than changing the
signature of `KEY_FUNCTION`.
--
Ticket URL: <https://code.djangoproject.com/ticket/33604#comment:2>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/0107017fd1a978ff-c6af3e99-6c61-44f6-93ca-7972f3c088c0-000000%40eu-central-1.amazonses.com.