Opened 3 years ago
Last modified 3 years ago
#33071 closed Bug
ContentType selects wrong DB in multiple DB setup — at Initial Version
Reported by: | Taylor H | Owned by: | nobody |
---|---|---|---|
Component: | contrib.contenttypes | Version: | 3.2 |
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
I just introduced multiple DBs in my Django app to split up some of the write/read load. I found that ContentType does not work across multiple DBs with GenericForeignKey. It is hard coded to use the same DB as the source/parent model. Here is the code that has a hard coded .using().
def get_all_objects_for_this_type(self, **kwargs): """ Return all objects of this type for the keyword arguments given. """ return self.model_class()._base_manager.using(self._state.db).filter(**kwargs)
https://github.com/django/django/blame/main/django/contrib/contenttypes/models.py#L181
Is there are reason for hard coding using() here instead of using the DB router like other places in the code? If we could just removing the using everything just works