Opened 21 months ago
Last modified 12 months ago
#34402 assigned Bug
Admin searchfields for inherited model — at Initial Version
Reported by: | Pavel Pančocha | Owned by: | nobody |
---|---|---|---|
Component: | contrib.admin | Version: | 3.2 |
Severity: | Normal | Keywords: | |
Cc: | Sarah Boyce | Triage Stage: | Accepted |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
Hello everyone!
Let's have model Payer
and we will create ExtendedPayer
from it
class ExtendedPayer(Payer): ...
We create admin for ExtendedPayer
and define search fields. We want to be able to filter by pk
of Payer
. So I would expect these to work the same:
class ExtendedPayerAdmin(ModelAdmin): ... search_fields = ( "pk__iexact", ... ) ...
class ExtendedPayerAdmin(ModelAdmin): ... search_fields = ( "id__iexact", ... ) ...
Guess what? The "id" variant works ok and the "pk" fails with
Why? Because in construct_search
(See Git) it's transformed to pk__iexact__icontains
as it found out that the pk
is payer_ptr
which is FK.
If we want to be correct, it should be "payer_ptr__pk__iexact"
.
Please let me know if this behaviour is a bug or if is there any reason behind it.