Skip to content

Commit

Permalink
Fixed #27905 -- Added RelatedFieldWidgetWrapper.value_omitted_from_da…
Browse files Browse the repository at this point in the history
…ta().
  • Loading branch information
raphaelmerx authored and timgraham committed Mar 7, 2017
1 parent 6c5348b commit 2a3a0eb
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 1 deletion.
3 changes: 3 additions & 0 deletions django/contrib/admin/widgets.py
Expand Up @@ -303,6 +303,9 @@ def get_context(self, name, value, attrs=None):
def value_from_datadict(self, data, files, name):
return self.widget.value_from_datadict(data, files, name)

def value_omitted_from_data(self, data, files, name):
return self.widget.value_omitted_from_data(data, files, name)

def id_for_label(self, id_):
return self.widget.id_for_label(id_)

Expand Down
3 changes: 2 additions & 1 deletion docs/releases/1.10.7.txt
Expand Up @@ -9,4 +9,5 @@ Django 1.10.7 fixes several bugs in 1.10.6.
Bugfixes
========

* ...
* Made admin's ``RelatedFieldWidgetWrapper`` use the wrapped widget's
``value_omitted_from_data()`` method (:ticket:`27905`).
9 changes: 9 additions & 0 deletions tests/admin_widgets/tests.py
Expand Up @@ -646,6 +646,15 @@ def render(self, *args, **kwargs):
output = wrapper.render('name', 'value')
self.assertIn('custom render output', output)

def test_widget_delegates_value_omitted_from_data(self):
class CustomWidget(forms.Select):
def value_omitted_from_data(self, data, files, name):
return False
rel = Album._meta.get_field('band').remote_field
widget = CustomWidget()
wrapper = widgets.RelatedFieldWidgetWrapper(widget, rel, widget_admin_site)
self.assertIs(wrapper.value_omitted_from_data({}, {}, 'band'), False)


@override_settings(ROOT_URLCONF='admin_widgets.urls')
class AdminWidgetSeleniumTestCase(AdminSeleniumTestCase):
Expand Down

0 comments on commit 2a3a0eb

Please sign in to comment.