2009-12-16 70 views
5

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

它呈现的JavaScript绑定到模型定义中“链接字段”的右侧。

您认为在formset中使用它可以使其工作吗?我认为小部件的渲染方法(请参阅django-smart-selecting代码)需要以某种方式知道窗体集(最好是表单前缀)。但是如何?

+0

那么,为了使它能够与formset一起工作,我打算手动呈现表单/表单集和所需的javascript。只是寻找一些关于如何实现这一点的指针。 – gbsmith 2009-12-16 14:49:46

回答

4

我想这和它的作品---在小部件。 django-smart-py的py文件选择代码,只需复制处理渲染javascript的部分并将其从文件中删除即可。删除将这个(现在删除的)javascript连接到输出的行。

对于您的表单集,请自行完成呈现。也就是说,在您的模板中,不要仅仅使用{{form}}或{{formset}}或其他方法,而是通过在formset中的{%form for form {{form.field}}中明确地布置所有单个字段。形成%}循环。

粘贴从widgets.py复制的JavaScript代码,并在JavaScript的ID与{{form.field.html_name}}

写在JavaScript创建自己的自定义网址,下面对其进行自定义代码中的模式。

瞧!

+0

唯一的问题是,JavaScript没有得到正确的ID。你的“解决方案”涉及到很多自动魔法并解决核心问题。好的。我猜这里真正的宝石是{{form.field.html_name}}。 – gbsmith 2009-12-16 20:41:29

0

请务必使用在使用由JavaScript元素ID的表单集的名称/ ID /索引,这样,他们仍然是唯一的

+0

这正是问题所在。 – gbsmith 2009-12-16 16:20:16