Django деньги и упорядочивание по min-max цене
Здравствуйте, я делаю Django e-commerce app и у меня возникла проблема, я хочу сделать сортировку. Проблема в том, что я не знаю, как получить цены между min-price и max-price и отфильтровать товары.
HTML:
<div class="sort__prices">
<input class="sort__min-price" type="number" name="min-price" placeholder="minimum price">
<input class="sort__max-price" type="number" name="max-price" placeholder="maximum price">
</div>
<button class="submit">sort</button>
просмотров:
def sortView(request):
if request.method == "GET":
min_price = request.GET.get('min-price')
max_price = request.GET.get('max-price')
items = Item.objects.all().filter(price=min_price)
return render(request, 'shop/sort.html', {'items': items})
Вы можете использовать объекты Q
для фильтрации цен.
from django.db.models import Q
items = Item.objects.filter(Q(price__gte=min_price) & Q(price__lte=max_price))
Читать больше о Q-объектах
Вы можете сортировать их, а затем выбрать самый низкий или самый высокий:
items_list = list(Item.objects.all())
lowest_price = sorted(items_list)[0]
highest_price = sorted(items_list, reverse=True)[0]