Decrease the number of elif blocks

Viewed 95

I 'm trying to do a filter based on the following queryparams.

How can I decrease the lines of code:

if fridge == 'true' and toilet == 'true' and side_window == 'true':
    queryset = queryset.filter(toilet=True, fridge=True, sun_side_window=True)
elif fridge == 'true' and toilet == 'true':
    queryset = queryset.filter(toilet=True, fridge=True)
elif fridge == 'true' and side_window == 'true':
    queryset = queryset.filter(sun_side_window=side_window.capitalize(), fridge=fridge.capitalize())
elif toilet == 'true' and side_window == 'true':
    queryset = queryset.filter(sun_side_window=side_window.capitalize(), toilet=toilet.capitalize())
elif fridge == 'true':
    queryset = queryset.filter(fridge=fridge.capitalize())
elif toilet == 'true':
    queryset = queryset.filter(toilet=toilet.capitalize())
elif side_window == 'true':
    queryset = queryset.filter(sun_side_window=True)
3 Answers
Related