2013-03-21 40 views
2

Django的選擇領域,使用選擇的部件,將渲染出無限數量的<option>元素。這當然需要很長時間,並且在有數百種選擇的情況下浪費大量的內存。當涉及到外鍵時,可以使用類似於contrib.adminraw_id_fields的東西,但是在硬編碼值的情況下(例如,全世界的所有subdivisions可以從pycountry中選擇),我不確定除外)A)使用AJAX提供一個列表(仍然有很多值需要輸出)或B)使用小部件的char字段,允許表單驗證錯誤的輸入。Django的選擇領域有很多選擇 - 是否有一個簡單的解決方案是有效的?

是否有不涉及上述一個選項,甚至是一個很簡單的最佳做法|清潔|可插拔這確實涉及選項一個

+0

這已經炸燬了我的網站在幾個不同的層次上:第一,由於DOM元素太多,瀏覽器開始崩潰,然後,在數據庫中更多FK之後,服務器耗盡內存。 – 2013-03-21 01:05:45

+0

@ Yuji'Tomita'Tomita - 正好。我仍然記得我公司的10臺服務器因爲有人忘記將'raw_id_fields'添加到具有FK的管理員到'User'(其中有超過400萬條記錄)而被迫停下來的2次。呃 – orokusaki 2013-03-21 01:11:21

回答

1

我曾經有同樣的問題,在我看來,處理這個問題的最好方法是使用自動填充字段。這就像一個文本字段,但用戶在該文本輸入中寫入選項時會獲得選項。

這比簡單的文本字段更好,因爲您不必驗證值是否正確:您只能選擇一個有效的值。

我嘗試一些應用程序,以便有自動完成和適合我的需求是對此最好的:

https://github.com/yourlabs/django-autocomplete-light

希望它能幫助!

相關問題