python - django 形式的条件逻辑

标签 python django forms conditional-statements branch

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

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

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

最佳答案

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

相关文章:

python - 文件如何在磁盘上打乱而不加载到内存中

python - 在 python 中如何将项目重复 N 次到列表中?

java - EXT JS 5/Spring MVC : How to bind ext js form to java object with spring mvc

python - Django 在创建后设置模型字段

python - Django 网址 NoReverseMatch

php - 提交前存储表单数据的最佳方式?

c++ - 如何在 Visual C++ 2010 中构建两个单选按钮组

python - 从 Python 测试 Apache 配置文件

Python:切换 "verbose"输出的最有效方法?

Python/Django 查询 - 将原始 SQL 附加到模型对象