django 形式的条件逻辑
Conditional Logic in django forms
我正在尝试构建一个条件表单,在该表单中选择一个选项会导致下方出现一个新字段,而选择另一个选项则会显示其他内容。
Formstack 有一个很好的例子https://www.formstack.com/features/conditional-logic
我找不到任何预先存在的具有此功能的 django 表单包。我应该如何开始实施?
Django 表单(特别是如果您使用 ModelForm
库)是 Django 应用程序的直接反映 Model
。因此,您应该首先重构您的 Django 应用程序 Model
以包含具有可选值的字段(即它们可以是 NULL
、empty
或已经创建了 default
值)。
这些将是 shown/hidden 基于您的条件的表单字段,它们可能有也可能没有值(如果它们根据条件隐藏,则无法提供值因此 Model
字段必须能够接受 NULL
值或使用默认值。
然后您将使用 Javascript (JS) 等客户端语言来处理 Django 应用程序的用户迭代。一个简单易用的 JS 框架,如 jQuery 值得研究您的需求。
除了由 PyDanny 编写的例外 Django docs on Forms, I also highly recommend you take a look at Django Crispy Forms 以了解应该如何正确完成 Django 表单。
我正在尝试构建一个条件表单,在该表单中选择一个选项会导致下方出现一个新字段,而选择另一个选项则会显示其他内容。
Formstack 有一个很好的例子https://www.formstack.com/features/conditional-logic
我找不到任何预先存在的具有此功能的 django 表单包。我应该如何开始实施?
Django 表单(特别是如果您使用 ModelForm
库)是 Django 应用程序的直接反映 Model
。因此,您应该首先重构您的 Django 应用程序 Model
以包含具有可选值的字段(即它们可以是 NULL
、empty
或已经创建了 default
值)。
这些将是 shown/hidden 基于您的条件的表单字段,它们可能有也可能没有值(如果它们根据条件隐藏,则无法提供值因此 Model
字段必须能够接受 NULL
值或使用默认值。
然后您将使用 Javascript (JS) 等客户端语言来处理 Django 应用程序的用户迭代。一个简单易用的 JS 框架,如 jQuery 值得研究您的需求。
除了由 PyDanny 编写的例外 Django docs on Forms, I also highly recommend you take a look at Django Crispy Forms 以了解应该如何正确完成 Django 表单。