1. ==========================
    
  2. Django 3.1.3 release notes
    
  3. ==========================
    
  4. 
    
  5. *November 2, 2020*
    
  6. 
    
  7. Django 3.1.3 fixes several bugs in 3.1.2 and adds compatibility with Python
    
  8. 3.9.
    
  9. 
    
  10. Bugfixes
    
  11. ========
    
  12. 
    
  13. * Fixed a regression in Django 3.1.2 that caused the incorrect height of the
    
  14.   admin changelist search bar (:ticket:`32072`).
    
  15. 
    
  16. * Fixed a regression in Django 3.1.2 that caused the incorrect width of the
    
  17.   admin changelist search bar on a filtered page (:ticket:`32091`).
    
  18. 
    
  19. * Fixed displaying Unicode characters in
    
  20.   :class:`forms.JSONField <django.forms.JSONField>` and read-only
    
  21.   :class:`models.JSONField <django.db.models.JSONField>` values in the admin
    
  22.   (:ticket:`32080`).
    
  23. 
    
  24. * Fixed a regression in Django 3.1 that caused a crash of
    
  25.   :class:`~django.contrib.postgres.aggregates.ArrayAgg` and
    
  26.   :class:`~django.contrib.postgres.aggregates.StringAgg` with ``ordering``
    
  27.   on key transforms for :class:`~django.db.models.JSONField` (:ticket:`32096`).
    
  28. 
    
  29. * Fixed a regression in Django 3.1 that caused a crash of ``__in`` lookup when
    
  30.   using key transforms for :class:`~django.db.models.JSONField` in the lookup
    
  31.   value (:ticket:`32096`).
    
  32. 
    
  33. * Fixed a regression in Django 3.1 that caused a crash of
    
  34.   :class:`~django.db.models.ExpressionWrapper` with key transforms for
    
  35.   :class:`~django.db.models.JSONField` (:ticket:`32096`).
    
  36. 
    
  37. * Fixed a regression in Django 3.1 that caused a migrations crash on PostgreSQL
    
  38.   when adding an
    
  39.   :class:`~django.contrib.postgres.constraints.ExclusionConstraint` with key
    
  40.   transforms for :class:`~django.db.models.JSONField` in ``expressions``
    
  41.   (:ticket:`32096`).
    
  42. 
    
  43. * Fixed a regression in Django 3.1 where
    
  44.   :exc:`ProtectedError.protected_objects <django.db.models.ProtectedError>` and
    
  45.   :exc:`RestrictedError.restricted_objects <django.db.models.RestrictedError>`
    
  46.   attributes returned iterators instead of :py:class:`set` of objects
    
  47.   (:ticket:`32107`).
    
  48. 
    
  49. * Fixed a regression in Django 3.1.2 that caused incorrect form input layout on
    
  50.   small screens in the admin change form view (:ticket:`32069`).
    
  51. 
    
  52. * Fixed a regression in Django 3.1 that invalidated pre-Django 3.1 password
    
  53.   reset tokens (:ticket:`32130`).
    
  54. 
    
  55. * Added support for ``asgiref`` 3.3 (:ticket:`32128`).
    
  56. 
    
  57. * Fixed a regression in Django 3.1 that caused incorrect textarea layout on
    
  58.   medium-sized screens in the admin change form view with the sidebar open
    
  59.   (:ticket:`32127`).
    
  60. 
    
  61. * Fixed a regression in Django 3.0.7 that didn't use ``Subquery()`` aliases in
    
  62.   the ``GROUP BY`` clause (:ticket:`32152`).