I think it's cool that you wrote a solution to a problem that was affecting you. For me I've been using the Django ORM for quite some time now and have been able to use it in 99% of situations. For the situations where it doesn't fit Django allows me to drop down to raw SQL for a solution.
I do think it would be nice though to get rid of things like Q objects and move to something else. Maybe something such as objects.filter(text='hello' | text='goodbye'). Either way Q objects are extremely useful and the Django documentation does a nice job of showing how to use all the queryset features.
It's weird to single out Q objects since they're the most functional, composable, flexible parts of that API. Passing around clauses lets you do things like build a list of them then reduce that list into a single query via |. There's a lot of mental gymnastics involved in learning Django's ORM but the Q object is not something I would ever suggest as a candidate for dismissal.
I do think it would be nice though to get rid of things like Q objects and move to something else. Maybe something such as objects.filter(text='hello' | text='goodbye'). Either way Q objects are extremely useful and the Django documentation does a nice job of showing how to use all the queryset features.