我有一个模型,其中包含许多非必填字段。我想有一个多步骤表单,例如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
方法以获得与下一个正确形式相对应的成功网址来更新模型,但是我正在寻找更好的解决方案。
答案 0 :(得分:2)
django-formtools中的documentation of the WizardView完全显示了您的情况:如何根据上一步中输入的布尔值有条件地查看或跳过特定步骤。