Fixed #10918 -- Ensure that the search widget on a raw_id_admin uses the right field name when the ForeignKey has a to_field definition. Thanks to David Cramer for the report, Collin Anderson for the fix, and Julien Phalip for the test.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@15657 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
0b53d318ef
commit
b5b5ba6cd9
|
@ -52,8 +52,6 @@ class ChangeList(object):
|
||||||
self.params = dict(request.GET.items())
|
self.params = dict(request.GET.items())
|
||||||
if PAGE_VAR in self.params:
|
if PAGE_VAR in self.params:
|
||||||
del self.params[PAGE_VAR]
|
del self.params[PAGE_VAR]
|
||||||
if TO_FIELD_VAR in self.params:
|
|
||||||
del self.params[TO_FIELD_VAR]
|
|
||||||
if ERROR_FLAG in self.params:
|
if ERROR_FLAG in self.params:
|
||||||
del self.params[ERROR_FLAG]
|
del self.params[ERROR_FLAG]
|
||||||
|
|
||||||
|
@ -173,7 +171,7 @@ class ChangeList(object):
|
||||||
|
|
||||||
qs = self.root_query_set
|
qs = self.root_query_set
|
||||||
lookup_params = self.params.copy() # a dictionary of the query string
|
lookup_params = self.params.copy() # a dictionary of the query string
|
||||||
for i in (ALL_VAR, ORDER_VAR, ORDER_TYPE_VAR, SEARCH_VAR, IS_POPUP_VAR):
|
for i in (ALL_VAR, ORDER_VAR, ORDER_TYPE_VAR, SEARCH_VAR, IS_POPUP_VAR, TO_FIELD_VAR):
|
||||||
if i in lookup_params:
|
if i in lookup_params:
|
||||||
del lookup_params[i]
|
del lookup_params[i]
|
||||||
for key, value in lookup_params.items():
|
for key, value in lookup_params.items():
|
||||||
|
|
|
@ -1694,6 +1694,16 @@ class AdminSearchTest(TestCase):
|
||||||
# confirm the search returned 1 object
|
# confirm the search returned 1 object
|
||||||
self.assertContains(response, "\n1 recommendation\n")
|
self.assertContains(response, "\n1 recommendation\n")
|
||||||
|
|
||||||
|
def test_with_fk_to_field(self):
|
||||||
|
"""Ensure that the to_field GET parameter is preserved when a search
|
||||||
|
is performed. Refs #10918.
|
||||||
|
"""
|
||||||
|
from django.contrib.admin.views.main import TO_FIELD_VAR
|
||||||
|
response = self.client.get('/test_admin/admin/auth/user/?q=joe&%s=username' % TO_FIELD_VAR)
|
||||||
|
self.assertContains(response, "\n1 user\n")
|
||||||
|
self.assertContains(response, '<input type="hidden" name="t" value="username"/>')
|
||||||
|
|
||||||
|
|
||||||
class AdminInheritedInlinesTest(TestCase):
|
class AdminInheritedInlinesTest(TestCase):
|
||||||
fixtures = ['admin-views-users.xml',]
|
fixtures = ['admin-views-users.xml',]
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue