в html передаются данные список товаров и список категорий.
так отображаем наименование категорий
<select id="categorySelect">
{% for category in category_list %}
<option value="{{ category.pk }}">{{ category.name }}</option>
{% endfor %}
</select>
По аналогии делаю с product_list.
Если категория не выбрана - должны выводиться все товары, иначе только те, которые относятся к выбранной категории