Как сделать сортировку элементов после завершения поиска
у меня есть поле поиска, я хочу дать пользователю возможность сортировки, чтобы пользователь мог сделать сортировку по цене от низкой к высокой к низкой в результатах поиска, но не могу достичь этого мое мнение
class search_item(View):
def get(self, request):
search_item = request.GET.get('search')
if search_item:
items = Item.objects.filter(Q(name__icontains=search_item)|Q(color__icontains=search_item))
sort_by = request.GET.get("sort", "l2h")
if sort_by == "l2h":
item = items.order_by("price")
elif sort_by == "h2l":
item = items.order_by("-price")
return render(request, 'search_result.html', {'items':item})
он выполняет поиск, но не может выполнить сортировку, что не так в моем коде
html
<li><a class="dropdown-item" href="?sort=l2h">Low To High</a></li>
<li><a class="dropdown-item" href="?sort=h2l">High To Low</a></li>
Следующее сообщение об ошибке является ключевым:
products.views.search_item не вернул объект HttpResponse. Вместо этого он вернул None.
Он говорит вам, что ваш метод products.views.search_item
вернул None. Как он может вернуть None? Он возвращает None, неявно, когда search_item
имеет ложное значение и полностью пропускает чтение/сортировку элементов. И это происходит, когда параметр search
отсутствует (или пуст).