Django 3.1.3 release notes

November 2, 2020

Django 3.1.3 fixes several bugs in 3.1.2 and adds compatibility with Python 3.9.

Bugfixes

  • Fixed a regression in Django 3.1.2 that caused the incorrect height of the admin changelist search bar (#32072).

  • Fixed a regression in Django 3.1.2 that caused the incorrect width of the admin changelist search bar on a filtered page (#32091).

  • Fixed displaying Unicode characters in forms.JSONField and read-only models.JSONField values in the admin (#32080).

  • Fixed a regression in Django 3.1 that caused a crash of ArrayAgg and StringAgg with ordering on key transforms for JSONField (#32096).

  • Fixed a regression in Django 3.1 that caused a crash of __in lookup when using key transforms for JSONField in the lookup value (#32096).

  • Fixed a regression in Django 3.1 that caused a crash of ExpressionWrapper with key transforms for JSONField (#32096).

  • Fixed a regression in Django 3.1 that caused a migrations crash on PostgreSQL when adding an ExclusionConstraint with key transforms for JSONField in expressions (#32096).

  • Fixed a regression in Django 3.1 where ProtectedError.protected_objects and RestrictedError.restricted_objects attributes returned iterators instead of set of objects (#32107).

  • Fixed a regression in Django 3.1.2 that caused incorrect form input layout on small screens in the admin change form view (#32069).

  • Fixed a regression in Django 3.1 that invalidated pre-Django 3.1 password reset tokens (#32130).

  • Added support for asgiref 3.3 (#32128).

  • Fixed a regression in Django 3.1 that caused incorrect textarea layout on medium-sized screens in the admin change form view with the sidebar open (#32127).

  • Fixed a regression in Django 3.0.7 that didn’t use Subquery() aliases in the GROUP BY clause (#32152).