Autocomplete - это простое и приятное решение. Благодаря Bilou06. Итак, в первую очередь мы должны передать список значений, мы можем сделать это в виду:
args['f_vals'] = Mod.objects.all().values_list("f", flat=True).distinct()[:10]
здесь мы получаем все плоский список значений и выполнить отчетливый фильтровать только Uniq значения. Затем мы ограничиваем значения 10. Дополнительным преимуществом здесь является то, что мы можем выполнять более сложные запросы с дополнительной фильтрацией и так далее. Например, если у вас есть поле, вы можете заказать его как «последнее». (Вы можете отредактировать этот ответ, чтобы привести пример).
Далее мы переходим наши аргументы в шаблон, и создать autocompleate:
<script>
$(document).ready(function(){
$("#id_f").autocomplete({
source: [{% for v in f_vals %}
"{{v}}",
{% endfor %}
],
minLength: 0,
}).on("focus", function() {
$(this).autocomplete("search", '');
});
}
</script>
В фокусе события здесь отображается список последних значений immidiately в центре внимания. Также значения будут отфильтрованы при вводе. Обратите внимание, что вы должны включить Jquery-Ui:
<script src="{% static 'js/jquery.min.js' %}"></script>
<script src="{% static 'js/jquery-ui.min.js' %}"></script>
посмотрите здесь: https://docs.djangoproject.com/en/1.8/ref/models/fields/#field-choices – Cheng
я уже попробовал это , как я вижу, когда я передаю некоторые варианты выбора в CharField, он также создает не редактируемые
У меня были такие же потребности, и я использовал https://jqueryui.com/autocomplete/ –