Django:一个模型多步骤形式

时间:2014-07-07 12:11:51

标签: django forms model multi-step

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

我能想到的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',)

撰写urls并与views集成以执行不同的步骤。问题是如何在最后一步验证和保存多步骤表单数据?

1 个答案:

答案 0 :(得分:2)

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

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

  1. 每次提交后清理/验证部分数据。
  2. 将隐藏字段中的部分数据发送回模板以用于后续步骤(可能Name可以使用Filter继承或初始化,与Name中的Description相同)。
  3. 然后在最终提交时,您将拥有所有以前的数据(一些在隐藏字段中),因此您可以将它们全部保存到您的数据库中。