Simple answer
Yes, you can use oscar to filter products based on various aspects of the search. You will need to use a search backend other than haystack, a simple backend.
The boundaries that you mentioned in the code in your question are available by default. Oscar offers more fields and queries that can appear as search filters. If you need fields that are common to your application and are not indexed by default oscar (for example, custom product attributes), check the detailed answer.
Detailed answer
In the latest version of oscar, you can add additional filters, such as year, brand, case, which by default is not in oscar.
Backend search
First, use a search backend other than Haystack. Django oscar officially supports Apache Solr ( Documentation here ). If you are using the latest version of Solr, you may need to make some changes to schema.xml and solrconfig.xml
Index fields
Some fields, such as product price or product_class, are automatically indexed by Django Oscar. If you want to index other fields, such as product attributes, you will need to edit the oscar search application search_indexes.py to specify new fields for indexing. The recommended way to use fork oscar search is to specify your own search_indexes.py. Remember to re-index products after adding new index fields.
Specify the facets of the search The OSCAR_SEARCH_FACETS parameter in settings.py can be used to indicate which faces should be displayed on the front side. Specify fields and queries for OSCAR_SEARCH_FACETS, restart the server, and you will see new faces on the front side.
source share