Fixed #29279 -- Added renderer argument to ModelForm.

This commit is contained in:
Dan Watson 2018-03-29 10:09:00 -04:00 committed by Tim Graham
parent 058f607518
commit e163effecc
2 changed files with 7 additions and 1 deletions

View File

@ -278,7 +278,8 @@ class ModelFormMetaclass(DeclarativeFieldsMetaclass):
class BaseModelForm(BaseForm): class BaseModelForm(BaseForm):
def __init__(self, data=None, files=None, auto_id='id_%s', prefix=None, def __init__(self, data=None, files=None, auto_id='id_%s', prefix=None,
initial=None, error_class=ErrorList, label_suffix=None, initial=None, error_class=ErrorList, label_suffix=None,
empty_permitted=False, instance=None, use_required_attribute=None): empty_permitted=False, instance=None, use_required_attribute=None,
renderer=None):
opts = self._meta opts = self._meta
if opts.model is None: if opts.model is None:
raise ValueError('ModelForm has no model class specified.') raise ValueError('ModelForm has no model class specified.')
@ -299,6 +300,7 @@ class BaseModelForm(BaseForm):
super().__init__( super().__init__(
data, files, auto_id, prefix, object_data, error_class, data, files, auto_id, prefix, object_data, error_class,
label_suffix, empty_permitted, use_required_attribute=use_required_attribute, label_suffix, empty_permitted, use_required_attribute=use_required_attribute,
renderer=renderer,
) )
for formfield in self.fields.values(): for formfield in self.fields.values():
apply_limit_choices_to_to_formfield(formfield) apply_limit_choices_to_to_formfield(formfield)

View File

@ -648,6 +648,10 @@ class ModelFormBaseTest(TestCase):
m1 = mf1.save(commit=False) m1 = mf1.save(commit=False)
self.assertEqual(m1.mode, mode) self.assertEqual(m1.mode, mode)
def test_renderer_kwarg(self):
custom = object()
self.assertIs(ProductForm(renderer=custom).renderer, custom)
def test_default_splitdatetime_field(self): def test_default_splitdatetime_field(self):
class PubForm(forms.ModelForm): class PubForm(forms.ModelForm):
datetime_published = forms.SplitDateTimeField(required=False) datetime_published = forms.SplitDateTimeField(required=False)