I despise django-orm, doctrine is so much better. Like, who thought that using named arguments to do stuff was a proper way ??? `.filter(created_at__gte=XXXXX)` why? The rest of the framework is great but the ORM is definetly its weakest point.
And, rather like the petrol engine, it turns out while it sucks, everything else is massively worse in some vitally important way.
[1] https://www.doctrine-project.org/projects/doctrine-collectio... (for collections but you can use them for queries too)
[2] https://www.doctrine-project.org/projects/doctrine-orm/en/3.... / https://www.doctrine-project.org/projects/doctrine-orm/en/3....