Seeing a new library in 2026 that uses Django-style filter syntax is really surprising.
With SQLAlchemy approach I can easily find all usages of a particular column everywhere.
.filter(Folder.user_id == user_id)
Versus .filter(user_id=user_id)
Grepping by user_id will obviously produce hundreds and thousands of matches, probably from dozens of tables.
You can't call filter() without a model. It's always Folder.objects.filter(user_id=user_id), so the context is right there in the code. Plus the generated .pyi stubs give your IDE full type info per model, so "go to usages" works through the type system.