Earlier I fixed bug
#27897 that resulted in a crash when the field name 'pk' was used in an admin search filter. The fix was to special case the check for 'pk' before calling `.get_field`. Afterwards I grepped through the code base and found 3 or 4 other places with the same special casing. To me, this annotation requirement indicates that the `.get_field` abstraction is broken and thus the ticket.
During the subsequent discussion on the
PR Simon & Tim both expressed that they are worried about subtle bugs in the ORM this change might introduce. I'm not familiar enough with that code to offer my opinion although I did trace how a model is set up at the current moment to prove to myself that only in the accurate case of an abstract model sans a primary_key definition would .pk be None. The recommendation was to post here on the mailing list to gather feedback.