Django money and ordering by min-max price



你好,我正在制作Django电子商务应用程序,我有一个问题,我想做排序的事情。问题是我不知道如何获得最小价格-最大价格和过滤器项目之间的价格。

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]

最新更新