diff --git a/django/db/models/functions/comparison.py b/django/db/models/functions/comparison.py index 6db81d6f46..d06f0a25a4 100644 --- a/django/db/models/functions/comparison.py +++ b/django/db/models/functions/comparison.py @@ -175,7 +175,10 @@ class JSONObject(Func): ) def as_postgresql(self, compiler, connection, **extra_context): - if not connection.features.is_postgresql_16: + if ( + not connection.features.is_postgresql_16 + or connection.features.uses_server_side_binding + ): copy = self.copy() copy.set_source_expressions( [ diff --git a/docs/releases/5.1.2.txt b/docs/releases/5.1.2.txt index 1cf3f9df09..6d2714df85 100644 --- a/docs/releases/5.1.2.txt +++ b/docs/releases/5.1.2.txt @@ -12,3 +12,6 @@ Bugfixes * Fixed a regression in Django 5.1 that caused a crash when using the PostgreSQL lookup :lookup:`trigram_similar` on output fields from ``Concat`` (:ticket:`35732`). + +* Fixed a regression in Django 5.1 that caused a crash of ``JSONObject()`` + when using server-side binding with PostgreSQL 16+ (:ticket:`35734`).