django链选择

django-smart-choices是一个优雅的解决方案,使Django开发人员能够在其表单中链接选择输入。 但正如开发人员在其问题列表中所报告的那样,它在表单集中使用时效果不佳。

它呈现的javascript与模型定义中右侧的“链式字段”的id相关联。

当您在formset中使用时,您认为如何使其工作? 我认为窗口小部件的渲染方法(请参阅django-smart-choices代码)需要以某种方式让我们知道formset(理想情况下,形成前缀)。 但是怎么样?

我试过这个并且它有效—在django-smart-choose代码的widgets.py文件中,只需复制处理渲染javascript的部分并将其从文件中删除。 删除将此(现已删除)的javascript连接到输出的行。

对于您的表单集,请自行完成渲染。 也就是说,在您的模板中,不要只执行{{form}}或{{formset}}或其他任何内容,而是通过在{form for formset中的{%}中执行{{form.field}}来明确布局所有单个字段。形成%}循环。

粘贴您从widgets.py复制的javascript代码,并使用j {{form.field.html_name}}中的ID对其进行自定义

使用代码中的模式在javascript中写入您自己的自定义URL。

瞧!

确保在javascript使用的元素ID中使用formset的name / id / index,这样它们仍然是唯一的