You can create a model manager and assign it to your model so that you can use this manager for any model. This solution is more pythonic.
class GridManager(models.Manager): def applyFilters(self, *args, **kwargs): new_kwargs = {} for eachKey in kwargs: val = kwargs[eachKey] if val != '' and val != None: new_kwargs[eachKey] = val if new_kwargs: return super(GridManager, self).get_query_set().filter(*args, **new_kwargs) else: return super(GridManager, self).get_query_set()
Assign this manager to your model:
class some_model(models.Model): your fields..... ...... objects = models.Manager() grid_manager = GridManager()
And, in your opinion, you can use the above manager as:
objects = some_modal.grid_manager.applyFilters(x=value, y = value, z = None)
Now you do not need to worry about any values ββ:) hope this help.
Aamir adnan
source share