Я хотел бы улучшить удобство использования формы, которая у меня есть, которая позволяет пользователю выбирать область, которая может быть выделена на карте.
Я хочу сохранить раскрывающийся список для просмотра пользователем, а также для того, чтобы он мог печатать в поле как свободный текст и иметь частичное совпадение на своих входных данных и фильтровать список для элементы, которые похожи на их ввод.
Некоторые из записей довольно длинные и несколько слов, например. в идеале «Мидлсбро Южный и Восточный Кливленд» должен отображаться в списке, когда пользователь вводит «Клив» вместе с любыми другими близкими совпадениями.
На данный момент страница выглядит следующим образом
У меня есть простая форма Django: -
class ConstituencyForm(forms.Form):
description = "Use the dropdown to select an area:-"
lstRandom = [(0, 'Random')]
lstChoices = lstRandom + list(constituency.objects.values_list('id', 'name'))
ConstituencySelection = forms.ChoiceField(choices=lstChoices, widget=forms.Select(),required=False, label="")
Форма создается и передается в этом фрагменте из представления: -
frmCons=ConstituencyForm()
if not request.GET.get("ConstituencySelection") or int(request.GET.get("ConstituencySelection"))==0:
intConsId = random_cons_view()
strConsType = "random"
else:
intConsId = int(request.GET.get("ConstituencySelection"))
strConsType = "selected"
objCons=get_constituency_view(intConsId)
context={
"consform" : frmCons,
"consgeom" : json.loads(objCons[1]),
Появляется здесь в template: -
<form method='get' action=''>
Select an area:-<br>
{{ context.consform }}<br><br>
Select a maptile:-<br>
{{ context.tileform }}<br><br>
<input type="submit" value="Update" >
</form>
Я стараюсь изо всех сил, как только могу, но изо всех сил пытаюсь понять, как сделать это изменение.
Что-то вроде: -
-Изменить форму тип поля для типа, который принимает выбор и свободный текст (например, комбинированное поле в MS Access)
-Использует ли фильтр с «title__contains» в представлении? Могу ли я сохранить все варианты выбора в форме объекта?
-Используйте JavaScript, чтобы распознать событие нажатия клавиш в поле и обновить sh список? Я не совсем разбираюсь в JS, но хотел бы дать ему go.
Какие шаги мне нужно предпринять и как это будет закодировано?
Пожалуйста не могли бы вы помочь мне достичь этого? Большое спасибо большому сообществу,
Фил