From d3f300faeab066a83d368118cccee7277bb07cd4 Mon Sep 17 00:00:00 2001 From: jawaad Date: Fri, 25 Nov 2011 14:42:06 +0900 Subject: [PATCH] WizardView's get_form now recognizes inlineform_factory-generated forms. (inlineforms are not passed querysets but rather a base object from which to fetch related objects.) --- formwizard/views.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/formwizard/views.py b/formwizard/views.py index 9af668b..74dd508 100644 --- a/formwizard/views.py +++ b/formwizard/views.py @@ -382,6 +382,14 @@ def get_form(self, step=None, data=None, files=None): if issubclass(self.form_list[step], forms.ModelForm): # If the form is based on ModelForm, add instance if available. kwargs.update({'instance': self.get_form_instance(step)}) + elif issubclass(self.form_list[step], forms.models.BaseInlineFormSet): + # BaseInlineFormSet is based on ModelFormSet but has some significant differences. + # It breaks if initial is passed. + # Furthermore, you need to pass it an instance from which + # it gets the relationship needed, not a queryset. + # See Inline Formset docs here: https://docs.djangoproject.com/en/dev/topics/forms/modelforms/ + del(kwargs['initial']) + kwargs.update({'instance': self.get_form_instance(step)}) elif issubclass(self.form_list[step], forms.models.BaseModelFormSet): # If the form is based on ModelFormSet, add queryset if available. kwargs.update({'queryset': self.get_form_instance(step)})