Как сделать сортировку элементов после завершения поиска

у меня есть поле поиска, я хочу дать пользователю возможность сортировки, чтобы пользователь мог сделать сортировку по цене от низкой к высокой к низкой в результатах поиска, но не могу достичь этого мое мнение

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 отсутствует (или пуст).

Вернуться на верх