I have get request GET /themes with query params:
category_id: integer
level: integer
it's maybe GET /themes?category_id=1&level=1 or GET /themes?category_id=1 etc
So I need get items by filter:
def get(self, request):
query = request.GET
category_id = query.get('category_id') # return value or None
level = query.get('level') # return value or None
items = Theme.objects.all()
qs = items.filter(category_id=category_id, level=level)
But category_id and level can be None, and I need change code qs = items.filter(category_id=category_id, level=level) if params is None
My code:
if category_id and level:
qs = items.filter(category_id=category_id, level=level)
elif not category_id and level:
qs = items.filter(level=level)
elif category_id and not level:
qs = items.filter(category_id=category_id)
else:
qs = items.filter()
But I think it's a terrible code.