Django:一个模型多步骤表单

Django:一个模型多步骤表单,django,forms,model,multi-step,Django,Forms,Model,Multi Step,我正在尝试从一个Django模型构建一个多步骤表单,该模型有9个字段。表单在每个步骤中都经过验证,并在最后一步后保存到数据库中 除了Django formWizard之外,我能想到的快速解决方案是 我有一个像这样的django模型: class Question(models.Model): name = models.CharField(max_length=100) Description = models.TextField() filter = models.Ch

我正在尝试从一个Django模型构建一个多步骤表单,该模型有9个字段。表单在每个步骤中都经过验证,并在最后一步后保存到数据库中

除了Django formWizard之外,我能想到的快速解决方案是

我有一个像这样的django模型:

class Question(models.Model):
    name = models.CharField(max_length=100)
    Description = models.TextField()
    filter = models.CharField(max_length=20)
我把表格分成三份

class Filter(forms.ModelForm):
    class Meta:
        model = Question
        exclude = ('filter',)


class Name(forms.ModelForm):
    class Meta:
        model = Question
        fields = ('name',)


class Descripton(forms.ModelForm):
    class Meta:
        model = Question
        fields = ('description',)

编写
URL
并与
视图集成,以实现不同的步骤。问题是如何在最后一步验证和保存多步骤表单数据

将其分为三个步骤而不是一个步骤的用例是什么

除此之外,一个简单的解决方案是:

  • 每次提交后清理/验证部分数据
  • 将隐藏字段中的部分数据发送回模板以进行后续步骤(可能名称可以继承或使用筛选器初始化,与名称中的描述相同)
  • 然后在最终提交时,您将拥有所有以前的数据(一些在隐藏字段中),以便您可以将其全部保存到数据库中

  • 拆分的情况是针对前端的UX部分。在这种情况下,ajax是一个可接受的解决方案吗?您可以使用单个模型表单并在UI中手动拆分字段。然后,对于每个部分,都有一个“提交”按钮,该按钮通过ajax请求将部分表单数据发送回以进行清理。如果您得到“OK”回复,则可以将其移动到表单的下一部分。否则,显示错误。您的最终提交按钮将实际发送到服务器,以便您可以执行最后一次清理并立即保存所有内容。