Django: Два независимых выпадающих списка с возможностью поиска с select2 и ajax не работают

Я хотел бы иметь два выпадающих списка с возможностью поиска, которые связаны с двумя различными модалами (Dog & Service). Первый выпадающий список для товаров (модальный список услуг) работает нормально (ожидайте, что у меня нет предварительного просмотра), но второй выпадающий список, который должен быть связан с модальным списком собак, не работает, как ожидалось.

Функция поиска показывает только результаты, которые находятся в другом модале (служебном). Однако если я выбираю один из результатов, то фактический выбор в выпадающем списке равен значению из правильного модала с собакой.

Я уже пытался найти ту же проблему в Интернете, но не смог.

.html

<!-- Searchbox_service linked to Service Modal -->
<form method='post' action='' class="mb-3">
    <label class="mb-1">Search service:</label>
    <select class="form-select select2" name="searchbox_service" id="searchbox_service">
        {% for service in services %}
            <option value='{{service.id}}'>{{ service.name }}</option>
        {% endfor %}
    </select>
</form>
<!-- Searchbox_dog linked to Dog Modal -->
<form method='post' action='' class="mb-3"></form>
    <label for="dog" class="form-label">Dog:</label>
    <select class="form-select select2" name="searchbox_dog" id="searchbox_dog">
        {% for dog in dogs %}
            <option value='{{dog.id}}'>{{ dog.dog_name }}</option>
        {% endfor %}
    </select>
</form>

javascript

urls.py

# Get products AJAX
path("get", views.get_products_ajax_view, name="get_products"),
# Get dogs AJAX
path("get", views.get_dogs_ajax_view, name="get_dogs"),

views.py

def is_ajax(request):
    return request.META.get('HTTP_X_REQUESTED_WITH') == 'XMLHttpRequest'

def get_products_ajax_view(request):
    if request.method == 'POST':
        if is_ajax(request=request):
            data = []

            products = Service.objects.filter(
                name__icontains=request.POST['term'])
            for product in products:
                item = product.to_json()
                data.append(item)

            return JsonResponse(data, safe=False)
        

def get_dogs_ajax_view(request):
    if request.method == 'POST':
        if is_ajax(request=request):
            data = []

            dogs = Dog.objects.filter(
                name__icontains=request.POST['term'])
            for dog in dogs:
                item = dog.to_json()
                data.append(item)

            return JsonResponse(data, safe=False)
Вернуться на верх