如何保存相同模型类的几种形式?

时间:2016-05-10 18:42:02

标签: django django-forms django-views

如何保存相同型号的几种形式?

这是一个例子,我有一个包含很多字段的模型,所以我决定使用该模型的不同模型字段创建几个表单,而不是创建一个大表单,因为站点需要为每个数据部分定制样式,所以将具有相同样式的输入字段分组到一个表单更容易。

def add_pet(request):
        form1 = PetMainInfoForm()
        form2 = PetFoodForm()
        form3 = PetDescriptionForm()
        if request.method == 'POST':
            form1 = PetMainInfoForm(request.POST)
            form2 = PetFoodForm(request.POST)
            form3 = PetDescriptionForm(request.POST)
            if form1.is_valid() and form2.is_valid() and form3.is_valid():
                form1.save()
                form2.save()
                form3.save()
                return HttpResponse('ok ok ok')
        return render(request, 'add_pet.html', {'form1': form1,
                                  'form2': form2,'form3': form3})

1 个答案:

答案 0 :(得分:0)

您是否尝试为每个表单使用前缀?每个表单的前缀应该是唯一的。这样,当您回发时,您知道哪个表格已发布。它帮助我从同一个模板发布了多个表单。我希望它对你也有帮助。

form1 = PetMainInfoForm(request.POST, prefix='PetMainInfoForm')