Django动态多步骤表单

时间:2019-02-19 13:27:52

标签: python django

我有一个模型,其中包含许多非必填字段。我想有一个多步骤表单,例如django-formtools,但下一个表单基于先前表单的答案...

例如,

class Survey(models.Model):
    # 1st form: generic informations
    name = models.CharField(max_length=300)
    age = models.CharField(max_length=300)
    married = models.BooleanField()

    #2nd form
    # show it if married
    worth_it = models.BooleanField(null=True, blank=True)

    job_status = models.CharField(max_length=300, null=True, blank=True)
    #...

表单的第一步询问通用信息,然后在第二步中,仅当选中“已婚”时,才向用户显示“ worth_it”字段。

我知道这是一个糟糕的模型设计,但是我选择它来拥有一个非常灵活的模型,可以快速适应客户不断变化的想法。

有没有一种方法可以在DRY和服务器端实现这一目标? 我感谢重载模型的get_absolute_url方法以获得与下一个正确形式相对应的成功网址来更新模型,但是我正在寻找更好的解决方案。

1 个答案:

答案 0 :(得分:2)

django-formtools中的documentation of the WizardView完全显示了您的情况:如何根据上一步中输入的布尔值有条件地查看或跳过特定步骤。