Opened 2 months ago

Last modified 2 months ago

#35770 assigned Cleanup/optimization

Improve recommendation for ignoring memcached-incompatible cache key warnings

Reported by: Markus Amalthea Magnuson Owned by: Aditya Chaudhary
Component: Core (Cache system) Version: dev
Severity: Normal Keywords:
Cc: Markus Amalthea Magnuson Triage Stage: Accepted
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

This section of the docs is a bit confusing to me:

https://docs.djangoproject.com/en/5.1/topics/cache/#cache-key-warnings

Why is the recommendation to add the code to a management module (and it's also not entirely clear what that means, especially for less experienced Python developers)? Wouldn't it be better to add it to the ready() method in one of your app configs?

I could not reliably get the first method to work, but the second one does, and is kind of what the ready() method is for?

I'd be happy to provide updated docs if this sounds like a reasonable change.

Change History (4)

comment:1 by Natalia Bidart, 2 months ago

Component: DocumentationCore (Cache system)
Triage Stage: UnreviewedAccepted

Hello Markus, thank you for taking the time to create this ticket. I agree that "management module" is a bit unclear. For me, that means adding the shown code inside the __init__.py file located at the toplevel of any management folder in any app.

What did you try and what did not work?

Overall I think we can enhance the docs, at least making it more explicit what the "management module" is, so I'll accept on that basis.

comment:2 by Markus Amalthea Magnuson, 2 months ago

I did exactly that, adding the code to __init_.py inside of a management folder (with no additional files) in an app that is in INSTALLED_APPS. Tried two different apps, but the code just would not run. Not sure about the internals of detecting it in such a module specifically, but seems like there are better way to put code that needs to always run.

comment:3 by Aditya Chaudhary, 2 months ago

Owner: set to Aditya Chaudhary
Status: newassigned

comment:4 by Aditya Chaudhary, 2 months ago

So, Is this right for the changes. Should I proceed with it ?

If you are using a caching backend that accepts a wider range of keys (e.g., a custom backend or one of the non-Memcached built-in backends) and you prefer to suppress these warnings, you can do so with the following code. This code can be added to the ready() method of an AppConfig class in one of your INSTALLED_APPS, which is a more integrated and commonly used approach:

Note: See TracTickets for help on using tickets.
Back to Top