to_field is not followed in objects.get(fkmodel__fkattr=something) lookups
|Reported by:||dfrishberg <dfrishberg@…>||Owned by:||nobody|
|Component:||Database layer (models, ORM)||Version:||master|
|Has patch:||yes||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||no|
When the to_field of a ForeignKey field is specified as something other than the primary key, FK lookups do not work properly in filtering. The to_field is ignored, because the django/db/models/query.py:lookup_inner() function follows a pk (as of revision 7138, this is at line 1031).
There's probably a better way to get the field name than I've got in this patch, and I imagine there may be more safety checking than I'm doing. But this fixed my problem.