2017-09-06 4 views
0

私は、検証エラーを取得しています:[「ManagementFormデータが不足しているか、改ざんされている」]ジャンゴModelFormset検証エラー

をmodelformsetのフォームを送信しようとすると、しかし、私はこれがなぜうまくいかように見えることはできません発生している。

コード:

--views.py

def formset_view(request): 
    EmpFormSet = modelformset_factory(Employee,form=UpdateForm,extra = 0) 

    if request.method == 'POST': 
     formset = EmpFormSet(request.POST, queryset = Employee.objects.filter(companyid__company_user__id = request.user.id, prefix='formsettest') 
     if formset.is_valid(): 
      for form in formset.forms: 
       if form.is_valid(): 
        form.save() 
      redirect('/home/') 
    else: 
     formset = EmpFormSet(queryset = Employee.objects.filter(companyid__company_user__id = request.user.id, prefix = 'form2') 

    return render(request, 'emp_update_list.html', {'formset': formset}) 

テンプレート:

<form action="" method="post"> 
    {% csrf_token %} 
      {{ formset.management_form }} 

{{ formset.as_table }} 
    <button type="submit" name="action" value="Submit">Submit</button> 
</form> 

- forms.py

class UpdateForm(ModelForm): 

class Meta: 
    model = Employee 
    fields=('empid','forename','surname') 

あなたが見ることができるように、私が持っていますテンプレート内の管理フォームがわからないこのエラーが発生しています。私はformsetを提出しようとすると発生します。

エラーは、ビュー内の行で発生しているようだ - formset.is_valid場合():

答えて

1

問題はあなたがGETやPOSTリクエストのために異なる接頭辞を使用していることです。フォームを送信すると、間違った接頭辞が付いているため管理フォームのデータが無視され、ManagementForm data is missing or has been tampered withエラーが発生します。