Трудность одновременного использования нескольких фильтров в представлении Django с HTMX
Я столкнулся с проблемой одновременного использования нескольких фильтров в представлении Django при использовании HTMX для асинхронных обновлений. Вот разбивка соответствующего кода и проблема, с которой я столкнулся:
Html-запросы:
<input id="searchInput" class="form-control mb-4" type="search" name="searchInput"
placeholder="Procure produtos pelo nome..."
hx-get="{% url 'filter_products' %}?searchInput={{ searchInput.value }}"
hx-trigger="input changed delay:500ms, search" hx-target="#search-results">
<select name="name_category" class="form-select px-0 py-0" multiple aria-label="multiple select example"
hx-get="{% url 'filter_products' %}"
hx-trigger="change"
hx-target="#search-results">
Вид фильтра:
def filter_products(request):
category_names = request.GET.getlist('name_category', [])
search_query = request.GET.get('searchInput')
print(search_query)
print(category_names)
# Start with all products
products = Products.objects.all()
# Apply category filter if any category is selected
if category_names:
category_filters = Q()
for category_name in category_names:
category_filters |= Q(categoryproducts__category__name_category=category_name)
products = products.filter(category_filters)
# Apply search filter if a search query is provided
if search_query:
products = products.filter(title__icontains=search_query)
# Render the response using the products found
html = render_to_string('products/products_list_partial.html', {'products': products})
return HttpResponse(html)
Проблема возникает, когда я пытаюсь использовать оба фильтра одновременно. Если я выбираю категорию, в то время как применяется поисковый запрос (или наоборот), другой фильтр очищается. Например, если я применяю поисковый запрос, а затем выбираю категорию, поисковый запрос исчезает, и применяется только фильтр категории.
Как изменить код для одновременного использования обоих фильтров, чтобы список товаров обновлялся в зависимости от изменений как поискового запроса, так и выбранных категорий?
Я пробовал менять вид безрезультатно. Одна вещь, которая сработала, но не может быть использована, это обновление hx-триггера на каждую 1 секунду, которая будет передавать два значения, а не только одно, не знаю почему...