Fixed #17927 -- Added initial values support for BaseGenericInlineFormSet
Thanks Fak3 for the suggestion.
This commit is contained in:
parent
a35ed20241
commit
b00c6371af
|
@ -384,7 +384,7 @@ class BaseGenericInlineFormSet(BaseModelFormSet):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, data=None, files=None, instance=None, save_as_new=None,
|
def __init__(self, data=None, files=None, instance=None, save_as_new=None,
|
||||||
prefix=None, queryset=None):
|
prefix=None, queryset=None, **kwargs):
|
||||||
opts = self.model._meta
|
opts = self.model._meta
|
||||||
self.instance = instance
|
self.instance = instance
|
||||||
self.rel_name = '-'.join((
|
self.rel_name = '-'.join((
|
||||||
|
@ -403,7 +403,8 @@ class BaseGenericInlineFormSet(BaseModelFormSet):
|
||||||
})
|
})
|
||||||
super(BaseGenericInlineFormSet, self).__init__(
|
super(BaseGenericInlineFormSet, self).__init__(
|
||||||
queryset=qs, data=data, files=files,
|
queryset=qs, data=data, files=files,
|
||||||
prefix=prefix
|
prefix=prefix,
|
||||||
|
**kwargs
|
||||||
)
|
)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|
|
@ -247,6 +247,22 @@ class GenericRelationsTests(TestCase):
|
||||||
TaggedItem.objects.create(content_object=granite, tag="countertop")
|
TaggedItem.objects.create(content_object=granite, tag="countertop")
|
||||||
self.assertEqual(Rock.objects.filter(tags__tag="countertop").count(), 1)
|
self.assertEqual(Rock.objects.filter(tags__tag="countertop").count(), 1)
|
||||||
|
|
||||||
|
def test_generic_inline_formsets_initial(self):
|
||||||
|
"""
|
||||||
|
Test for #17927 Initial values support for BaseGenericInlineFormSet.
|
||||||
|
"""
|
||||||
|
quartz = Mineral.objects.create(name="Quartz", hardness=7)
|
||||||
|
|
||||||
|
GenericFormSet = generic_inlineformset_factory(TaggedItem, extra=1)
|
||||||
|
ctype = ContentType.objects.get_for_model(quartz)
|
||||||
|
initial_data = [{
|
||||||
|
'tag': 'lizard',
|
||||||
|
'content_type': ctype.pk,
|
||||||
|
'object_id': quartz.pk,
|
||||||
|
}]
|
||||||
|
formset = GenericFormSet(initial=initial_data)
|
||||||
|
self.assertEqual(formset.forms[0].initial, initial_data[0])
|
||||||
|
|
||||||
|
|
||||||
class CustomWidget(forms.TextInput):
|
class CustomWidget(forms.TextInput):
|
||||||
pass
|
pass
|
||||||
|
|
Loading…
Reference in New Issue