Django Фильтр по цене
Изучаю Django и столкнулся с проблемой фильтрации товаров по цене. Если записываю диапазон фильтра как число, он отображается верно, от 0 до 1000, например, и бегунок бегает правильно и записанное число принимается правильно. А когда диапазон делаю от минимальной до максимальной цены товаров, он работает только от 0 до 100, будто в процентах.
Мои файлы:
filter.html
{% load static %}
<script type="text/javascript" src="{% static 'product-filter.js' %}"></script>
<h3 class="mb-4 border-bottom pb-1">Фильтры</h3>
<!-- Price Filter -->
<div class="card mb-4">
<h6 class="card-header">Цена</h6>
<div class="list-group list-group-flush">
<li class="list-group-item">
<input type="range" id="rangeInput" min={{minMaxPrice.price__min}} max={{minMaxPrice.price__max}} oninput="maxPrice.value=this.value" />
<p>{{minMaxPrice.price__min}}-{{minMaxPrice.price__max}}</p>
</li>
<li class="list-group-item">
Максимальная цена: <input type="number" onkeyup="rangeInput.value=this.value" id="maxPrice" min={{minMaxPrice.price__min}} max={{minMaxPrice.price__max}} />
</li>
</div>
</div>
<!-- Filter 1 -->
<div class="card mb-4">
<h6 class="card-header">Категории</h6>
<div class="list-group list-group-flush">
{% for cat in cats %}
<li class="list-group-item">
<input class="filter-checkbox" data-filter="category" value="{{cat.category__id}}" type="checkbox" />
{{cat.category__title}}
</li>
{% endfor %}
</div>
</div>
template_context.py
from .models import Product
from django.db.models import Min, Max
from django.db.models import FloatField
def get_filters(request):
cats = Product.objects.distinct().values('category__title', 'category__id')
minMaxPrice = Product.objects.aggregate(Min('price', output_field=FloatField()), Max('price', output_field=FloatField()))
data = {
'cats': cats,
'minMaxPrice': minMaxPrice,
}
return data
Причем и подпись диапазона фильтрации и минимум/максимум цены записаны одинаково, {{minMaxPrice.price__min}} {{minMaxPrice.price__max}}, но когда это заголовок фильтра, он показывает 149,99-1999,99, а когда фильтр выдает 0-100. Вроде и код проверил и пытался читать документы, но понять что не так не могу. Может я как то не правильно обозначаю min и max в "range"?
Проблема снова в локализации, и запятых в числах. Нужно вернуть цены с точкой и фильтр их воспримет правильно.