Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django动态多步骤表单_Python_Django - Fatal编程技术网

Python Django动态多步骤表单

Python Django动态多步骤表单,python,django,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.Bo

我有一个模型,有很多非必填字段。我希望有一个多步骤的表单,比如使用
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”

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

有没有一种方法可以在服务器端实现这一点?
我感谢您重载模型的
get_absolute\u url
方法,以获得与下一个正确表单对应的成功url,以更新模型,但我正在寻找更好的解决方案。

来自django formtools的示例正好显示了您的情况:如何基于在上一个表单中输入的布尔值有条件地查看或跳过特定步骤步骤。

django formtools中的表单工具准确地显示了您的情况:如何基于上一步中输入的布尔值有条件地查看或跳过特定步骤。

如何要求用户填写表单与模型无关。使用django formtools中的表单向导可能是一个很好的方法。您可以重写方法以根据前面步骤中的输入显示或跳过表单。但你的问题无法具体回答,因为它太宽泛了。如果您需要特定问题的帮助,您应该深入并尝试一些方法,然后再回来。这与模型无关,但在本例中,表“婚姻状况”的外键可能是一个更干净的选择,因为它有几个相互依赖的可选字段。要覆盖哪个formtools方法?我没有看到任何使用formtools实现依赖表单的方法。我“尝试”的是我提到的覆盖
get_absolute\u url
,但这意味着每个表单都有一个特定的视图和url,这不是很枯燥,并且是通过创建和更新方式完成的,而不是真正的多步骤表单。我承认它很广泛,但我还找不到更多。这正是你的情况:如何有条件地查看或跳过特定步骤。这正是我想要的,我完全错过了。谢谢如何要求用户填写表单与模型无关。使用django formtools中的表单向导可能是一个很好的方法。您可以重写方法以根据前面步骤中的输入显示或跳过表单。但你的问题无法具体回答,因为它太宽泛了。如果您需要特定问题的帮助,您应该深入并尝试一些方法,然后再回来。这与模型无关,但在本例中,表“婚姻状况”的外键可能是一个更干净的选择,因为它有几个相互依赖的可选字段。要覆盖哪个formtools方法?我没有看到任何使用formtools实现依赖表单的方法。我“尝试”的是我提到的覆盖
get_absolute\u url
,但这意味着每个表单都有一个特定的视图和url,这不是很枯燥,并且是通过创建和更新方式完成的,而不是真正的多步骤表单。我承认它很广泛,但我还找不到更多。这正是你的情况:如何有条件地查看或跳过特定步骤。这正是我想要的,我完全错过了。谢谢