django 形式的条件逻辑

Conditional Logic in django forms

我正在尝试构建一个条件表单,在该表单中选择一个选项会导致下方出现一个新字段,而选择另一个选项则会显示其他内容。

Formstack 有一个很好的例子https://www.formstack.com/features/conditional-logic

我找不到任何预先存在的具有此功能的 django 表单包。我应该如何开始实施?

Django 表单(特别是如果您使用 ModelForm 库)是 Django 应用程序的直接反映 Model。因此,您应该首先重构您的 Django 应用程序 Model 以包含具有可选值的字段(即它们可以是 NULLempty 或已经创建了 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 表单。