What happens in the browser stays in the browser, unless you do something about it.
Forgive me if I'm being too basic below:
There are three approaches to click and see a filtering change, with trade offs in performance, complexity, and the impact if the user's browser is on a humble box.
- When the user clicks, it's on a link, and you reload the page with the filter applied. No JavaScript required. Pretty slow. more network load, more browser load, and more load on the server. (I'm not going into the old approach of having an iframe and the link reloads the iframe because iframes are tricky, and if you're showing a big table, it's most of the page anyway.) Do be sure that your images, CSS files, and JavaScript files are set to encourage the browser and/or the network to cache them, but the HTML will load every time, and the URL will likely show the filter settings (though you can do things with cookies and/or session store, but you will surprise your users someday.
- Load all the data in the first place, and use JavaScript in combination with CSS to hide the stuff that's filtered out. If you go this way, do arrange to use CSS controlled by a class on a single containing element to control visibility, because doing big DOM modifications in JavaScript performs poorly. This is the snappiest approach, but you have to have loaded everything, at cost of network and server load, even if you expect the user to filter later, and at the cost of RAM in the browser. If the data's not that big, this is fine. But if it's the catalog of a hardware chain or something else huge, you probably be doing it in pages. Sometimes it's natural. For example, I once did and event calendar for a school system. I loaded a month at a time, and filtering within the month was peppy, but to go to a different month required a reload, and you couldn't show stuff from multiple months at one time.
- Use an AJAX request to replace part of the DOM with filtered data. (The iframe hack is very much like this.) If the data is most of your page, this isn't much more light weight than option 1, but the user doesn't see the page reload, which seems to count for style points.
There are JavaScript "frameworks" (e.g. VueJS) that will help you with 2 and especially 3, but you have to learn how to use the framework, and how to connect it to Django. Those are useful things to learn, but they're not overnight reads, and can have performance pitfalls.
Good luck, Bill