# Django 5.2.16 documentation

# 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).