Django 4.2.2 release notes

June 5, 2023

Django 4.2.2 fixes several bugs in 4.2.1.

Bugfixes

  • Fixed a regression in Django 4.2 that caused an unnecessary DBMS_LOB.SUBSTR() wrapping in the __isnull and __exact=None lookups for TextField()/BinaryField() on Oracle (#34544).

  • Restored, following a regression in Django 4.2, get_prep_value() call in JSONField subclasses (#34539).

  • Fixed a regression in Django 4.2 that caused a crash of QuerySet.defer() when passing a ManyToManyField or GenericForeignKey reference. While doing so is a no-op, it was allowed in older version (#34570).

  • Fixed a regression in Django 4.2 that caused a crash of QuerySet.only() when passing a reverse OneToOneField reference (#34612).

  • Fixed a bug in Django 4.2 where makemigrations --update didn't respect the --name option (#34568).

  • Fixed a performance regression in Django 4.2 when compiling queries without ordering (#34580).

  • Fixed a regression in Django 4.2 where nonexistent stylesheet was linked on a “Congratulations!” page (#34588).

  • Fixed a regression in Django 4.2 that caused a crash of QuerySet.aggregate() with expressions referencing other aggregates (#34551).

  • Fixed a regression in Django 4.2 that caused a crash of QuerySet.aggregate() with aggregates referencing subqueries (#34551).

  • Fixed a regression in Django 4.2 that caused a crash of querysets on SQLite when filtering on DecimalField against values outside of the defined range (#34590).

  • Fixed a regression in Django 4.2 that caused a serialization crash on a ManyToManyField without a natural key when its Manager’s base QuerySet used select_related() (#34620).