Как можно роутить по разным get параметрам на одну и ту же страницу?

Всем привет

Есть каталог, в который надо сделать фильтры на разные 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')
  • Вопрос задан
  • 224 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы