Django : Добавление панели поиска для фильтрации выпадающего меню form.ChoiceField
Я хочу добавить поиск для фильтрации пунктов выпадающего меню, потому что оно может содержать 100 пунктов в зависимости от пользователя. Как я могу добавить это в мой код? В представлении или в форме.
forms.py
class SelectClient(forms.Form):
ID_Customer = forms.ChoiceField(label="Company :", widget=forms.Select(attrs={'onchange': 'submit();'}))
def __init__(self, *args, **kwargs) :
self.user = kwargs.pop('user')
super(SelectClient, self).__init__(*args, **kwargs)
id_client_list = AADJNTGroupAPI.objects.filter(ID_User_id=self.user.id).values_list('ID_Group_id', flat=True)
id_client_list = list(id_client_list)
client_choices = GroupsAPI.objects.all().filter(ID__in=id_client_list).values_list('UUID_Group','GroupName')
self.fields['ID_Customer'].choices = client_choices
views.py
@authenticated_user
def selectcontrat(request) :
context = initialize_context(request)
form_client = SelectClient(request.POST, user=request.user)
if form_client.is_valid():
uuid_contrat = request.POST.get("ID_Customer")
return redirect(reverse('home', args=(uuid_contrat,)))
context['form_client'] = form_client
return render(request, 'classify/selectcontrat.html', context)
html
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="{% static 'selectcontrat.css' %}">
</head>
<body>
<div class="selectcontract">
<h2>{{ user.name }}, Bienvenue chez EFID</h2>
<div class="imagedroite">
<img src="{% static 'image/logo.svg' %}" alt="">
</div>
<div class="contrats">
<h2>Veuillez selectionner un contrat :</h2>
<form method="post" id="SelectCompany">
{% csrf_token %}
{{ form_client.as_p }}
<input type="submit" value="Select">
</form>
</div>
</div>
</body>