我試圖用自動完成下拉菜單替換CheckBoxSelectMultiple字段。當選擇自動完成項目時,將隱藏的輸入附加到div,並選擇該項目的值,所以一旦表單被提交,看起來與複選框字段相同。在Django模板中訪問CheckBoxMultiple選擇的項目
但是,問題是在表單中存在錯誤時恢復這些列表項。理想情況下,我可以創建一個可以繼承CheckBoxSelectMultiple小部件的自定義小部件,但似乎沒有關於如何執行此操作的任何文檔。相反,我想我可以訴諸類似下面:
{% for box in checkboxes.selected %}
<li>
<span class="selectedItem">
{{ box.field1 }} ({{box.field2}})
<input type="hidden" value="{{box.id}}" name="selectedItems"/>
</span>
</li>
{% endfor %}
這是一個非常哈克解決方案,那一定是相當普遍的一個問題。我想像有一種相當優雅的方式來解決這個問題,我在這裏沒有看到。 我應該補充一點,這也將在一個formset中進行,所以如果我修改視圖,我需要捕獲formset中每個表單的前綴,因此爲什麼我要避免這樣做。
你有沒有考慮過使用[Django的自動完成光(HTTP:/ /django-autocomplete-light.readthedocs.org/en/stable-2.xx/)它幾乎可以滿足你所問的一切? –