Фильтр категорий товаров Django + Ajax
Есть несколько категорий товаров. При нажатии на кнопку какой-либо категории, вывод сопутствующих данной категории товаров отображается на ура. Но при этом постоянно перезагружается страница. Простыми слова, хотелось бы, чтобы вывод по каждой категории (при клике на кнопку с категорией), выводил список товаров по данной категории без перезагрузки страницы. Знаю, что в этом мне поможет Ajax запрос, но я не могу его сформировать правильно. Я пробовал адаптировать к своей ситуации несколько вариантов, которые я нашел на просторе интернета, но не совсем понимаю как это работает. Прилагаю фрагменты моего кода.
list.html
<section class="items-list">
<div class="items-list__items-menu">
{% for c in categories %}
<div class="items-list__item">
<a href="{{ c.get_absolute_url }}" role="button" class="{% if category.slug == c.slug %} active {% endif %} button button--items-menu">{{ c.name }}</a>
</div>
{% endfor %}
</div>
<div class="container-fluid items-list__items-for-rent">
<div class="container">
<div class="row">
{% for product in products %}
{% if product.available == True %}
{% if product.category.slug == "shatry" %}
{% for product_image in product.images.all %}
{% if forloop.first %}
<div class="col-md-6 items-list__one-item">
<a href="{{ product.get_absolute_url }}">
<img src="{{ product_image.image.url }}" alt="{{ product.name }}" class="items-list__one-item-img">
</a>
<div class="items-list__one-item-description">
<div class="items-list__one-item-name">
<p><img src="{{ '../media/img/svg/Minus.svg' }}" alt=""> <a href="{{ product.get_absolute_url }}">{{ product.name }} м.</a></p>
</div>
<div class="items-list__one-item-price">
<h3><span class="grey-bg">{{ product.price }} РУБ.</span></h3>
</div>
</div>
</div>
{% endif %}
{% endfor %}
{% endif %}
{% endif %}
{% endfor %}
</div>
<div class="row">
{% for product in products %}
{% if product.available == True %}
{% if product.category.slug != "shatry" %}
{% for product_image in product.images.all %}
{% if forloop.first %}
<div class="col-md-6 items-list__one-item">
<img src="{{ product_image.image.url }}" alt="{{ product.name }}" class="items-list__one-item-img">
<div class="items-list__one-item-description">
<div class="items-list__one-item-name">
<p><img src="{{ '../media/img/svg/Minus.svg' }}" alt=""> {{ product.name }}</p>
</div>
<div class="items-list__one-item-price">
<h3><span class="grey-bg">{{ product.price }} РУБ.</span></h3>
</div>
</div>
</div>
{% endif %}
{% endfor %}
{% endif %}
{% endif %}
{% endfor %}
</div>
</div>
</div>
</section>
views.py
def product_list(request, category_slug=None):
category = None
categories = Category.objects.all()
examples = Examples.objects.all()
products = Product.objects.filter(category__slug="shatry", available=True)
if category_slug:
category = get_object_or_404(Category, slug=category_slug)
products = Product.objects.filter(category=category)
return render(request, 'main/list.html', {'category': category, 'categories': categories, 'products': products, 'product_list': 'active', 'examples': examples})