2012-07-13 372 views
1

我想在formwizard中使用formset。Django 1.4 formwizard with formset

class Model1(models.Model): 
    customerid = models.CharField(max_length=20) 
    Name = models.CharField(max_length=40) 

class Model1Form(ModelForm): 
    class Meta: 
      model = Model1 

class Model2(models.Model): 
    product = models.CharField(max_length=100) 
    price = models.DecimalField(max_digits=5, decimal_places=2) 

class Model2Form(forms.Form): 
    product = forms.ModelChoiceField(queryset=Model2.objects.all()) 
    amount = forms.IntegerField(required=False) 

Model2Formset = formsets.formset_factory(Model2Form) 

在我的urls.py:

(r'^testwizard/$', TestWizard.as_view([Model1Form, Model2Formset])), 

我用一個基本的觀點看張貼形式的結果:

class TestWizard(SessionWizardView): 
def done(self, form_list, **kwargs): 
    return render_to_response('template', { 
     'form_data': [form.cleaned_data for form in form_list], 
    }) 

當表單集有多個條目我只能看到一個條目:

{'customerid': u'7676', 'Name': u'7', 'klantnummer': u'7'} [{'product': <Model2: Bike>, 'amount': 7}] 

我預計:

{'customerid': u'7676', 'Name': u'7', 'klantnummer': u'7'} [{'product': <Model2: Bike>, 'amount': 7},{'product': <Model2: Plane>, 'amount': 5}] 

在文檔中發現這樣的:

WizardView支持ModelForms和ModelFormSets。除了initial_dict,> as_view()方法還有一個instance_dict參數,該參數應該包含> ModelForm和ModelFormSet的實例。與initial_dict類似,這些字典鍵值應該等於表單列表中的步驟編號。

不幸的是我不知道是什麼意思在這裏。

+0

我忘了提,我使用jQuery表單集來呈現模板額外的字段。只有formset(沒有formwizard)一切正常。 – 2012-07-13 18:25:35

回答