Django:一个模型多步骤表单
我正在尝试从一个Django模型构建一个多步骤表单,该模型有9个字段。表单在每个步骤中都经过验证,并在最后一步后保存到数据库中 除了Django formWizard之外,我能想到的快速解决方案是 我有一个像这样的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
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”回复,则可以将其移动到表单的下一部分。否则,显示错误。您的最终提交按钮将实际发送到服务器,以便您可以执行最后一次清理并立即保存所有内容。