Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Fixed #17927 -- Added initial values support for BaseGenericInlineFor…

…mSet

Thanks Fak3 for the suggestion.
  • Loading branch information...
commit b00c6371afab778ab6c6206fb2dbb3f2c7f750b4 1 parent a35ed20
Bojan Mihelac bmihelac authored timgraham committed
5 django/contrib/contenttypes/generic.py
View
@@ -384,7 +384,7 @@ class BaseGenericInlineFormSet(BaseModelFormSet):
"""
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
self.instance = instance
self.rel_name = '-'.join((
@@ -403,7 +403,8 @@ def __init__(self, data=None, files=None, instance=None, save_as_new=None,
})
super(BaseGenericInlineFormSet, self).__init__(
queryset=qs, data=data, files=files,
- prefix=prefix
+ prefix=prefix,
+ **kwargs
)
@classmethod
16 tests/generic_relations/tests.py
View
@@ -247,6 +247,22 @@ def test_subclasses_with_gen_rel(self):
TaggedItem.objects.create(content_object=granite, tag="countertop")
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):
pass
Please sign in to comment.
Something went wrong with that request. Please try again.