我正在尝试构建一个条件表单,其中选择一个选项将导致一个新字段出现在下方,而选择另一个选项将显示其他内容。
Formstack 有一个很好的例子 https://www.formstack.com/features/conditional-logic
我找不到任何预先存在的具有此功能的 django 表单包。我应该如何开始实现?
最佳答案
Django 表单(特别是如果您使用 ModelForm
库)是 Django 应用程序 Model
的直接反射(reflect)。因此,您应该首先重构您的 Django 应用程序 Model
以包含具有可选值的字段(即它们可以是 NULL
、empty
或具有 default
值已经创建)。
这些将是根据您的条件显示/隐藏的表单字段,它们可能有值,也可能没有值(如果它们根据条件隐藏,则不可能为它们提供值,因此 Model
字段必须能够接受 NULL
值或使用默认值)。
然后,您将使用 Javascript (JS) 等客户端语言来处理 Django 应用程序的用户迭代。一个简单易用的 JS 框架,如 jQuery将值得调查您的需求。
除了异常(exception)Django docs on Forms ,我也强烈建议你看看Django Crispy Forms由 PyDanny 编写,以了解应该如何正确完成 Django 表单。
关于python - django 形式的条件逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31418350/