django-smart-selects是一个优雅的解决方案,它使Django开发人员能够在其表单中链接选择输入。但是,正如开发人员在其问题清单中所报告的那样,在表单集中使用它时效果不佳。
它呈现的JavaScript与模型定义中“已链接字段”的ID绑定在一起。
当您在表单集中使用它时,您如何看待它如何工作?我认为小部件的渲染方法(请参阅django-smart- selects代码)需要以某种方式使用户知道表单集(最好是表单前缀)。但是如何?
我试过了,它能正常工作—在django-smart- selects代码的widgets.py文件中,只需复制处理渲染javascript的部分并将其从文件中删除。删除将此(现在已删除)JavaScript连接到输出的行。
对于您的表单集,请自己完成渲染。也就是说,在您的模板中,不仅要做{{form}}或{{formset}}还是其他任何事情,而是通过以{%for formset的形式对{{form.field}}进行{{form.field}}来显式布局所有字段。形成%}循环。
粘贴从widgets.py复制过来的javascript代码,并使用{{form.field.html_name}}用javascript中的ID对其进行自定义
遵循代码中的模式,在javascript中编写自己的自定义网址。
瞧!