Opened 11 years ago
Closed 11 years ago
#23661 closed Uncategorized (needsinfo)
Site cache doesn't cache in a per-database basis
| Reported by: | German M. Bravo | Owned by: | nobody |
|---|---|---|---|
| Component: | contrib.sites | Version: | 1.6 |
| Severity: | Normal | Keywords: | |
| Cc: | Triage Stage: | Unreviewed | |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
The cache for Site (SITE_CACHE) should cache site objects for the database the object comes from. If there is a router in place and the current site is retrieved from one database, a second call for getting the current site from a different database will return the wrong object for that database.
Instead of using SITE_CACHE the way it's currently done, I propose using the same caching scheme as the one used in ContentType's _cache.
Attachments (1)
Change History (3)
by , 11 years ago
| Attachment: | #23661-sites_cache_using.diff added |
|---|
comment:1 by , 11 years ago
| Component: | Uncategorized → contrib.sites |
|---|
comment:2 by , 11 years ago
| Resolution: | → needsinfo |
|---|---|
| Status: | new → closed |
As discussed in IRC, #15089 may solve the use case here (allowing lookup of the current site based on request.get_host()). If not, we need to decide whether we'd officially support this particular configuration of contrib.sites. While caching the site based on database seems valid, I'm opposed to adding complexity unless there's a valid use case.
I'm not sure I understand the problem completely. Are you saying that in database A you could have
(site_id=1, domain=example.com)and in database B(site_id=1, domain=example2.com)? Could you expand a bit on the use case and how you ran into this?