From be7f68422d4c6ae568a17f1fa91aac67d284df82 Mon Sep 17 00:00:00 2001 From: Clifford Gama Date: Tue, 21 Oct 2025 11:34:58 +0200 Subject: Refs #35381 -- Delegated ArrayField element prepping to base_field.get_db_prep_save. Previously, ArrayField always used base_field.get_db_prep_value when saving, which could differ from how base_field prepares data for save. This change overrides ArrayField.get_db_prep_save to delegate to the base_field's get_db_prep_save, ensuring elements like None in JSONField arrays are saved correctly as SQL NULL instead of JSON null. --- docs/releases/6.1.txt | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'docs') diff --git a/docs/releases/6.1.txt b/docs/releases/6.1.txt index bb8f686f84..412ec692e3 100644 --- a/docs/releases/6.1.txt +++ b/docs/releases/6.1.txt @@ -319,6 +319,15 @@ backends. * Support for PostGIS 3.1 is removed. +:mod:`django.contrib.postgres` +------------------------------ + +* Top-level elements set to ``None`` in an + :class:`~django.contrib.postgres.fields.ArrayField` with a + :class:`~django.db.models.JSONField` base field are now saved as SQL ``NULL`` + instead of the JSON ``null`` primitive. This matches the behavior of a + standalone :class:`~django.db.models.JSONField` when storing ``None`` values. + Dropped support for PostgreSQL 14 --------------------------------- -- cgit v1.3