django-smart-selects是一个优雅的解决方案,它使Django开发人员能够在其表单中链接选择输入。但正如开发人员在其问题列表中所报告的那样,它在表单集中使用时效果不佳。
它呈现的javascript与模型定义中“链式字段”的id相关联。
在formset中使用时,您认为如何使其工作?我认为窗口小部件的渲染方法(请参阅django-smart-choices代码)需要以某种方式了解formset(理想情况下,形成前缀)。但是如何?
答案 0 :(得分:4)
我试过这个并且它有效---在django-smart-choices代码的widgets.py文件中,只需复制处理渲染javascript的部分并从文件中删除它。删除将此(现已删除)的javascript连接到输出的行。
对于您的表单集,请自行完成整个呈现。也就是说,在您的模板中,不要只执行{{form}}或{{formset}}或其他任何操作,而是通过在{form for formset中的{%}中执行{{form.field}}来明确布局所有单个字段。形成%}循环。
粘贴您从widgets.py复制的javascript代码,并使用javascript中的ID {{form.field.html_name}}
对其进行自定义按照代码中的模式在javascript中写入您自己的自定义网址。
瞧!
答案 1 :(得分:0)
确保在javascript使用的元素ID中使用formset的name / id / index,这样它们仍然是唯一的