【问题标题】:How to save couple forms of same model class?如何保存同一模型类的几种形式?
【发布时间】:2016-05-10 18:42:02
【问题描述】:

如何保存同一模型的多个表单?

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

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})

【问题讨论】:

  • 你有什么问题?你目前的方法有什么问题吗?你有什么错误?
  • 这种方法是否有任何错误?
  • 我为同一个模型类制作了 3 个表格。现在我不知道如何将这 3 个表单合并为一个以保存。也许我需要使用表单集或类似的东西。

标签: django django-forms django-views


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-13
    • 1970-01-01
    相关资源
    最近更新 更多