# Let’s build an automatic Django ORM feature matrix!

**URL:** <https://forum.djangoproject.com/t/let-s-build-an-automatic-django-orm-feature-matrix/43093>\
**Category:** ORM\
**Created:** [October 6, 2025, 8:05am UTC](https://forum.djangoproject.com/t/let-s-build-an-automatic-django-orm-feature-matrix/43093 "2025-10-06T08:05:47Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![pauloxnet](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.djangoproject.com/pauloxnet/32/11021_2.png) [@pauloxnet](https://forum.djangoproject.com/u/pauloxnet)\
**Post date:** [October 6, 2025, 8:05am UTC](https://forum.djangoproject.com/t/let-s-build-an-automatic-django-orm-feature-matrix/43093/1 "2025-10-06T08:05:47Z")

</div>

Hey everyone!

I’ve been thinking—it would be awesome to have an official, always up-to-date table that shows which Django ORM features are actually supported by each database backend.  
Not just a manual page, but something generated automatically from Django’s code, so it’s always correct!

I wrote a blog post with some ideas and an “illustrative only” mockup:  
[“Django: one ORM to rule all databases 💍”](https://www.paulox.net/2025/10/06/django-orm-comparison/)

Would you find a matrix like this useful? What features would you want to see listed?  
I’d love to hear your thoughts and feedback—let’s make this happen together!

---

<div class="post-metadata">

**Author:** ![cleder](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.djangoproject.com/cleder/32/30165_2.png) [@cleder](https://forum.djangoproject.com/u/cleder)\
**Post date:** [October 6, 2025, 10:05am UTC](https://forum.djangoproject.com/t/let-s-build-an-automatic-django-orm-feature-matrix/43093/2 "2025-10-06T10:05:16Z")

</div>

💯 Automate all the Things!  
I think this would be extremely helpful.  
It would serve as a blueprint for similar projects like sqlalchemy could follow.

---

<div class="post-metadata">

**Author:** ![sevdog](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.djangoproject.com/sevdog/32/20692_2.png) [@sevdog](https://forum.djangoproject.com/u/sevdog)\
**Post date:** [October 6, 2025, 10:33am UTC](https://forum.djangoproject.com/t/let-s-build-an-automatic-django-orm-feature-matrix/43093/3 "2025-10-06T10:33:54Z")

</div>

This could be very useful also for third-party backend integrations (like mssql or even mongo), so they can document/claim their level of compatibility.

Something which can build for each selected backend the corresponding row in the feature matrix would be very helpful also to spread which kind of features are directly supported by the ORM!

---

<div class="post-metadata">

**Author:** ![progressify](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.djangoproject.com/progressify/32/19380_2.png) [@progressify](https://forum.djangoproject.com/u/progressify)\
**Post date:** [October 6, 2025, 1:25pm UTC](https://forum.djangoproject.com/t/let-s-build-an-automatic-django-orm-feature-matrix/43093/4 "2025-10-06T13:25:00Z")

</div>

If development begins, I’d love to participate in the project. It could be my first experience contributing to Django 🙂  
It’s also Hacktoberfest! Some PR might be helpful.

---

<div class="post-metadata">

**Author:** ![AndrewS](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.djangoproject.com/andrews/32/30173_2.png) [@AndrewS](https://forum.djangoproject.com/u/AndrewS)\
**Post date:** [October 6, 2025, 3:33pm UTC](https://forum.djangoproject.com/t/let-s-build-an-automatic-django-orm-feature-matrix/43093/5 "2025-10-06T15:33:26Z")

</div>

I think a matrix like this would be useful, in particular if it was automated from the code as you suggested so it stays up-to-date.

Would it be worth it to make the order of the databases listed in the matrix random? Or do we want to intentionally choose the order they are listed?

---

<div class="post-metadata">

**Author:** ![alexbevi](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.djangoproject.com/alexbevi/32/30185_2.png) [@alexbevi](https://forum.djangoproject.com/u/alexbevi)\
**Post date:** [October 7, 2025, 12:15pm UTC](https://forum.djangoproject.com/t/let-s-build-an-automatic-django-orm-feature-matrix/43093/6 "2025-10-07T12:15:48Z")

</div>

It would be super useful to be able to quickly visualize the level of support for [3rd party database backends](https://docs.djangoproject.com/en/5.2/ref/databases/#using-a-3rd-party-database-backend) such as the [MongoDB backend](https://www.mongodb.com/docs/languages/python/django-mongodb/current/) to be able to quickly identify if the level of support is right for what you’re building.

---

<div class="post-metadata">

**Author:** ![mark-mishyn](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.djangoproject.com/mark-mishyn/32/30227_2.png) [@mark-mishyn](https://forum.djangoproject.com/u/mark-mishyn)\
**Post date:** [October 9, 2025, 9:01pm UTC](https://forum.djangoproject.com/t/let-s-build-an-automatic-django-orm-feature-matrix/43093/7 "2025-10-09T21:01:24Z")

</div>

I still have some kind of idea, almost a dream: it would be great to have Django ORM as a standalone library, because it’s really cool and easy to use.

I’m always sad when realizing that SQLAlchemy is most common python ORM and a lot of python backend developers even don’t consider other options when they use something like FastAPI or Flask.

---

<div class="post-metadata">

**Author:** ![rgammans](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.djangoproject.com/rgammans/32/11097_2.png) [@rgammans](https://forum.djangoproject.com/u/rgammans)\
**Post date:** [October 10, 2025, 8:02am UTC](https://forum.djangoproject.com/t/let-s-build-an-automatic-django-orm-feature-matrix/43093/8 "2025-10-10T08:02:04Z")

</div>

Are you guys familiar with TortoiseORM [Tortoise ORM - Tortoise ORM v0.25.1 Documentation](https://tortoise.github.io/#) .

It doesn’t explicitly have Django compatibility as a goal, but it’s APi was inspired by Django and feels very close. (although it is native async, so that the biggest difference).

---

<div class="post-metadata">

**Author:** ![Ardenine](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.djangoproject.com/ardenine/32/25309_2.png) [@Ardenine](https://forum.djangoproject.com/u/Ardenine)\
**Post date:** [October 23, 2025, 12:39pm UTC](https://forum.djangoproject.com/t/let-s-build-an-automatic-django-orm-feature-matrix/43093/9 "2025-10-23T12:39:56Z")

</div>

I always consider the proper “choice” based on my real needs. There are different tools capable of offering different advantages and sometimes Django is not the most fitting choice, especially when you “simply” need a lower structured tool like SQL Alchemy, I guess.

---

<div class="post-metadata">

**Author:** ![Ardenine](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.djangoproject.com/ardenine/32/25309_2.png) [@Ardenine](https://forum.djangoproject.com/u/Ardenine)\
**Post date:** [October 23, 2025, 12:41pm UTC](https://forum.djangoproject.com/t/let-s-build-an-automatic-django-orm-feature-matrix/43093/10 "2025-10-23T12:41:13Z")

</div>

@pauloxnet thank you, I think this would be a very helpful piece of documentation 🙂
