2

Django 的选择字段,使用一个选择小部件,将渲染出无限数量的<option>元素。当然,当有数百个选择时,这会花费很长时间并浪费大量内存。当涉及到外键时,可以使用类似于contrib.admin's 的东西raw_id_fields,但是对于硬编码值(例如,世界上所有可供选择的细分,来自pycountry),我不确定该怎么做,除了A)使用 AJAX 提供列表(仍然有很多值要输出)或B)为小部件使用 char 字段,允许表单验证错误的输入。

是否有任何不涉及上述AB选项的最佳实践,或者甚至是涉及选项A的 easy|clean|pluggable 的最佳实践?

4

1 回答 1

1

我曾经遇到过同样的问题,在我看来,解决这个问题的最好方法是使用自动完成字段。这就像一个文本字段,但用户在该文本输入中写入时会获得选项。

这比简单的文本字段要好得多,因为您不必验证值是否正确:您只能选择一个有效值。

我尝试了一些应用程序以实现自动完成功能,最适合我需要的是:

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

希望能帮助到你!

于 2013-03-21T04:59:38.853 回答