Fixed #27905 -- Added RelatedFieldWidgetWrapper.value_omitted_from_data().
This commit is contained in:
parent
6c5348b9d2
commit
2a3a0eb092
|
@ -303,6 +303,9 @@ class RelatedFieldWidgetWrapper(forms.Widget):
|
||||||
def value_from_datadict(self, data, files, name):
|
def value_from_datadict(self, data, files, name):
|
||||||
return self.widget.value_from_datadict(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_):
|
def id_for_label(self, id_):
|
||||||
return self.widget.id_for_label(id_)
|
return self.widget.id_for_label(id_)
|
||||||
|
|
||||||
|
|
|
@ -9,4 +9,5 @@ Django 1.10.7 fixes several bugs in 1.10.6.
|
||||||
Bugfixes
|
Bugfixes
|
||||||
========
|
========
|
||||||
|
|
||||||
* ...
|
* Made admin's ``RelatedFieldWidgetWrapper`` use the wrapped widget's
|
||||||
|
``value_omitted_from_data()`` method (:ticket:`27905`).
|
||||||
|
|
|
@ -646,6 +646,15 @@ class RelatedFieldWidgetWrapperTests(SimpleTestCase):
|
||||||
output = wrapper.render('name', 'value')
|
output = wrapper.render('name', 'value')
|
||||||
self.assertIn('custom render output', output)
|
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')
|
@override_settings(ROOT_URLCONF='admin_widgets.urls')
|
||||||
class AdminWidgetSeleniumTestCase(AdminSeleniumTestCase):
|
class AdminWidgetSeleniumTestCase(AdminSeleniumTestCase):
|
||||||
|
|
Loading…
Reference in New Issue