﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
16173	manager.get on foreign key fields (related fields)	nitinbhide@…	Tobias McNulty	"`__get__` on !ForeignKey field uses manager to query the values.

The code is as given below:

{{{
            # If the related manager indicates that it should be used for
            # related fields, respect that.
            rel_mgr = self.field.rel.to._default_manager
            db = router.db_for_read(self.field.rel.to, instance=instance)            
            if getattr(rel_mgr, 'use_for_related_fields', False):
                rel_obj = rel_mgr.using(db).get(**params)
}}}
             
Check the last line `rel_obj = rel_mgr.using(db).get(**params)` for using `rel_mgr` with multiple databases. `rel_mgr.using(db)` returns a queryset. If developer has written a custom manager class for which `get` is overriden, then custom managers `get` function will never get called. This results in surprises to the developer. I think this line should changed to:

{{{
    rel_obj = rel_mgr.db_manager(db).get(**params)
}}}
"	Cleanup/optimization	closed	Database layer (models, ORM)	dev	Normal	wontfix	manager foreignkey	fhahn	Accepted	0	0	0	1	1	0
