{{{
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
--
Ticket URL: <https://code.djangoproject.com/ticket/33071>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
Old 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
New 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 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
--
--
Ticket URL: <https://code.djangoproject.com/ticket/33071#comment:1>
* status: new => closed
* type: Uncategorized => Bug
* resolution: => duplicate
Comment:
I'm pretty sure it's a duplicate of #15610 or #16281.
--
Ticket URL: <https://code.djangoproject.com/ticket/33071#comment:2>