2009-12-16 64 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