Loading django/contrib/admin/widgets.py +2 −0 Original line number Diff line number Diff line Loading @@ -116,6 +116,8 @@ def url_params_from_lookup_dict(lookups): if lookups and hasattr(lookups, 'items'): items = [] for k, v in lookups.items(): if callable(v): v = v() if isinstance(v, (tuple, list)): v = ','.join([str(x) for x in v]) elif isinstance(v, bool): Loading tests/admin_widgets/tests.py +8 −1 Original line number Diff line number Diff line Loading @@ -226,6 +226,13 @@ class AdminForeignKeyRawIdWidget(DjangoTestCase): self.assertEqual(lookup1, {'color__in': 'red,blue'}) 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): def test_render(self): Loading Loading
django/contrib/admin/widgets.py +2 −0 Original line number Diff line number Diff line Loading @@ -116,6 +116,8 @@ def url_params_from_lookup_dict(lookups): if lookups and hasattr(lookups, 'items'): items = [] for k, v in lookups.items(): if callable(v): v = v() if isinstance(v, (tuple, list)): v = ','.join([str(x) for x in v]) elif isinstance(v, bool): Loading
tests/admin_widgets/tests.py +8 −1 Original line number Diff line number Diff line Loading @@ -226,6 +226,13 @@ class AdminForeignKeyRawIdWidget(DjangoTestCase): self.assertEqual(lookup1, {'color__in': 'red,blue'}) 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): def test_render(self): Loading