Поисковый выпадающий список с хрустящей формой в Django
Кто-нибудь знает, как добавить выпадающее поле с возможностью поиска в форму, использующую crispy?
Вот код :
views.py
class GroupMemberPermissionUpdateView(UpdateView):
model = AadGroupmember
fields = ['id_aadgroup','id_aaduser']
template_name = 'modify_layout.html'
success_url = lazy(reverse, str)("permissions_groupmembers")
modify_layout.html
{% extends 'layout.html' %}
{% load crispy_forms_tags %}
{% block content %}
<div class="container">
<div class="row justify-content-center">
<div class="col-8">
<h1 class="mt-2">Form for Update</h1>
<hr class="mt-0 mb-4">
<form method="POST" enctype="multipart/form-data">
<!-- Security token -->
{% csrf_token %}
<!-- Using the formset -->
{{ form |crispy}}
<button type="submit" class="btn btn-primary">Submit</button>
</form>
</div>
</div>
</div>
{% endblock %}
У меня проблемы, так как я использую crispy и bootstrap v.5.2 для форм. Спасибо !
Для решения этой проблемы вы можете использовать библиотеку deselect.js. Получите CDN этой библиотеки и добавьте ее в соответствующий файл, например base.html
или layout.html
{% extends 'layout.html' %}
{% load crispy_forms_tags %}
{% block content %}
<div class="container">
<div class="row justify-content-center">
<div class="col-8">
<h1 class="mt-2">Form for Update</h1>
<hr class="mt-0 mb-4">
<form method="POST" enctype="multipart/form-data">
<!-- Security token -->
{% csrf_token %}
<!-- Using the formset -->
{{ form |crispy}}
<button type="submit" class="btn btn-primary">Submit</button>
</form>
</div>
</div>
</div>
<script>
dselect(document.querySelector('#id_dropdown_name'), {
search: true
});
</script>
{% endblock %}
Чтобы получить id вашего выпадающего списка, вы можете просмотреть страницу, django создает id для html, используя имя поля модели, например, если имя вашего выпадающего списка - countries, то id в форме будет id_countries.