diff options
Diffstat (limited to 'src/dashboard')
-rw-r--r-- | src/dashboard/utils.py | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/dashboard/utils.py b/src/dashboard/utils.py new file mode 100644 index 0000000..af2461e --- /dev/null +++ b/src/dashboard/utils.py @@ -0,0 +1,24 @@ + +class AbstractModelQuery(): + """ + This is a class made for querying abstract models. + + This class is itself abstract. create subclasses to + query your own abstract models. + """ + + model_list = [] + + @classmethod + def filter(cls, *args, **kwargs): + """ + Query all concrete model classes. + + Iterates over the model list and returns a list of all + matching models from the classes given. + Filter queries are given here as normal and are passed into the Django ORM + for each concrete model + """ + result = [] + for model in cls.model_list: + result += list(model.objects.filter(*args, **kwargs)) |