Opened 7 years ago

Last modified 7 years ago

#27897 closed Bug

Cannot search for foreign key's pk in the admin anymore — at Version 1

Reported by: rm_ Owned by: nobody
Component: contrib.admin Version: dev
Severity: Normal Keywords:
Cc: Triage Stage: Accepted
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description (last modified by rm_)

On django 1.10.6 and python 2.7.9 given this Model and ModelAdmin:

class Bar(models.Model):
    name = models.CharField(
        max_length=256
    )

class Foo(models.Model):
    name = models.CharField(
        max_length=256
    )
    bar = models.ForeignKey(Bar)

class FooAdmin(admin.ModelAdmin):
    search_fields = ['bar__pk']

Each search returns:

File "/venv/local/lib/python2.7/site-packages/django/contrib/admin/views/main.py" in __init__
  78.         self.queryset = self.get_queryset(request)

File "/venv/local/lib/python2.7/site-packages/django/contrib/admin/views/main.py" in get_queryset
  346.         qs, search_use_distinct = self.model_admin.get_search_results(request, qs, self.query)

File "/venv/local/lib/python2.7/site-packages/django/contrib/admin/options.py" in get_search_results
  908.                     if lookup_needs_distinct(self.opts, search_spec):

File "/venv/local/lib/python2.7/site-packages/django/contrib/admin/utils.py" in lookup_needs_distinct
  32.         field = opts.get_field(field_name)

File "/venv/local/lib/python2.7/site-packages/django/db/models/options.py" in get_field
  619.             raise FieldDoesNotExist('%s has no field named %r' % (self.object_name, field_name))

Exception Type: FieldDoesNotExist at /admin/app/foo/
Exception Value: Bar has no field named u'pk'

Same code works fine in 1.8.16.

UPDATE: i've updated the test case as searching for the pk of the admin model does not work in 1.8.16 too

Change History (1)

comment:1 by rm_, 7 years ago

Description: modified (diff)
Summary: Cannot search for pk in the admin anymoreCannot search for foreign key's pk in the admin anymore
Note: See TracTickets for help on using tickets.
Back to Top