mirror of https://github.com/django/django.git
Fixed #20865 -- Fixed raw_id_fields to work with callable limit_choices_to.
This commit is contained in:
parent
709cd2c4b7
commit
d53e574676
|
@ -116,6 +116,8 @@ def url_params_from_lookup_dict(lookups):
|
||||||
if lookups and hasattr(lookups, 'items'):
|
if lookups and hasattr(lookups, 'items'):
|
||||||
items = []
|
items = []
|
||||||
for k, v in lookups.items():
|
for k, v in lookups.items():
|
||||||
|
if callable(v):
|
||||||
|
v = v()
|
||||||
if isinstance(v, (tuple, list)):
|
if isinstance(v, (tuple, list)):
|
||||||
v = ','.join([str(x) for x in v])
|
v = ','.join([str(x) for x in v])
|
||||||
elif isinstance(v, bool):
|
elif isinstance(v, bool):
|
||||||
|
|
|
@ -226,6 +226,13 @@ class AdminForeignKeyRawIdWidget(DjangoTestCase):
|
||||||
self.assertEqual(lookup1, {'color__in': 'red,blue'})
|
self.assertEqual(lookup1, {'color__in': 'red,blue'})
|
||||||
self.assertEqual(lookup1, lookup2)
|
self.assertEqual(lookup1, lookup2)
|
||||||
|
|
||||||
|
def test_url_params_from_lookup_dict_callable(self):
|
||||||
|
def my_callable():
|
||||||
|
return 'works'
|
||||||
|
lookup1 = widgets.url_params_from_lookup_dict({'myfield': my_callable})
|
||||||
|
lookup2 = widgets.url_params_from_lookup_dict({'myfield': my_callable()})
|
||||||
|
self.assertEqual(lookup1, lookup2)
|
||||||
|
|
||||||
|
|
||||||
class FilteredSelectMultipleWidgetTest(DjangoTestCase):
|
class FilteredSelectMultipleWidgetTest(DjangoTestCase):
|
||||||
def test_render(self):
|
def test_render(self):
|
||||||
|
@ -915,4 +922,4 @@ class AdminRawIdWidgetSeleniumChromeTests(AdminRawIdWidgetSeleniumFirefoxTests):
|
||||||
webdriver_class = 'selenium.webdriver.chrome.webdriver.WebDriver'
|
webdriver_class = 'selenium.webdriver.chrome.webdriver.WebDriver'
|
||||||
|
|
||||||
class AdminRawIdWidgetSeleniumIETests(AdminRawIdWidgetSeleniumFirefoxTests):
|
class AdminRawIdWidgetSeleniumIETests(AdminRawIdWidgetSeleniumFirefoxTests):
|
||||||
webdriver_class = 'selenium.webdriver.ie.webdriver.WebDriver'
|
webdriver_class = 'selenium.webdriver.ie.webdriver.WebDriver'
|
||||||
|
|
Loading…
Reference in New Issue