【发布时间】:2020-06-03 06:06:40
【问题描述】:
views.py:-
def search(request):
global pro
global products
if not request.GET.get('price_filter') == '1' or request.GET.get('price_filter') == '2':
q = request.GET.get("q")
products = Product.objects.filter(active=True, name__icontains=q)
categories = Category.objects.filter(active=True)
brands = Brand.objects.filter(active=True)
context = {"products": products,
"categories": categories,
"brands": brands,
"title": q + " - search"}
return render(request, "shop/home.html", context)
pro = products
if request.GET.get('price_filter') == '1':
products = pro.order_by('price')
categories = Category.objects.filter(active=True)
brands = Brand.objects.filter(active=True)
context = {"products": products,
"categories": categories,
"brands": brands}
return render(request, "shop/home.html", context)
elif request.GET.get('price_filter') == '2':
products = pro.order_by('-price')
categories = Category.objects.filter(active=True)
brands = Brand.objects.filter(active=True)
context = {"products": products,
"categories": categories,
"brands": brands}
return render(request, "shop/home.html", context)
在 HTML 中:-
<form method='get' action='#' style="margin-top:-20px; margin-left: 8px;">
<input class="btn btn-outline-dark" type="checkbox" value="1" name="price_filter"/>Low to High
<input class="btn btn-outline-dark" type="checkbox" value="2" name="price_filter"/>High to Low
<button class="btn" type="submit" value="Sort">Sort</button>
</form>
使用该搜索我们可以从低到高排序,但是当我选择从高到低时,它会显示某些错误:-
Cannot use None as a query value
我知道这不是正确的方法,但请帮我解决这个问题,或指导我正确的排序方法。
【问题讨论】:
-
尝试打印
q。 -
在你的最后一个 elif 块中打印
pro条件为==2它得到任何值让我知道 -
@l.b.vasoya 它没有显示,没有任何价值。
标签: python django django-views django-filter