Всем привет
Есть каталог, в который надо сделать фильтры на разные get параметры. Все эти GET параметры должны вести на одну и ту же страницу.
Я сделал код, который чекает сначала один гет-параметр, если его нет, то он чекает второй, если и его нет, то возвращает базовую страницу.
Можно ли это как-то удачнее сделать?
def open_category(request):
try:
category_id = request.GET.get('category', '')
category = Category.objects.get(id=category_id)
products = Product.objects.filter(category__id=category_id)
context = {
"products": products,
"category": category,
}
return render(request, 'product/open_category.html', context)
except ValueError:
try:
brand_id = request.GET.get('brand', '')
category = Brand.objects.get(id=brand_id)
products = Product.objects.filter(brand__id=brand_id)
context = {
"products": products,
"category": category,
}
return render(request, 'product/open_category.html', context)
except ValueError:
return redirect('/review-catalog')