Search code examples
djangodjango-querysetdjango-filter

I dont know how to pass two queryset parameters into one URL


I really struggled to explain my problem and the only way I found it would be possible is - through screenshots as I have a lot of code and I am not sure what is really needed here. So if you want any code, tell me I will add.

The numbers on the pictures indicate the order.

Choosing the category Selecting the category it redirects me to - /products_list?category=(that category_id)

Filtering through brand in that category Now please pay attention to the URL and what happens after I have chosen the brand I want to filter with.

Back on the first page Problem is here: Now I am back on the first page, where are all the products but I wanted it to stay on that URL where are that kind of category products.

What I wanted to happen? Instead of it taking me to the page where are ALL the products and then doing the filtering, I want it to stay on that category page and return the filtered products there.

The brand dropdown menu also should only show that category products that I am in, not all.


Solution

  • You need to pass the other parameters as well. So that means that for two parameters category_id and brand, you create a URL that looks like:

    {% url 'product-list' %}?category={{ category_id|urlencode }}&brand={{ brand|urlencode }}

    If you thus already filtered the category down, you pass the category_id to the template, and render the URLs with the ?category={{ category_id|urlencode }} part.