为下拉列表相互依赖的表单加载 django 表单实例

Load django form instance for form where dropdowns are dependent on each other

我有一个 ModelForm,上面有 5 个下拉菜单。

最初,它们会在用户选择时显示一个下拉列表(jquery 发生更改事件)- Ajax 触发对 view 函数的请求 - 该函数将查询集呈现为下拉列表并通过 jquery.

放入当前 DOM

followed this tutorial 进行设置(对我的 5 个下拉菜单重复该过程)。

我去编辑已保存的表单时出现了问题。

与教程结尾类似,我可以使用实例项设置我的表单,没问题。如果我更改最后一个下拉列表并保存表单,它会按预期更新。

但是如果我更改任何其他项目并且它在初始查询集中生成 不是 的选项,它会启动错误说 Select a valid choice. That choice is not one of the available choices.

我是否应该在 clean_ 方法中为每个输入再次生成查询集,并在匹配时强制对其进行验证?

是否有更好的方法来处理表单中的依赖下拉菜单?

我的代码几乎完全模仿教程 - 除了一些额外的输入,链接方式与教程完全相同。

我最终更改了表格的 __init__ 以利用 .is_bound。方法本身。

通过这样做,我能够将生成的查询集注册为 POST 中的适当响应。