2021-04-06 17:49:48 +08:00
|
|
|
==========================
|
|
|
|
Django 3.2.1 release notes
|
|
|
|
==========================
|
|
|
|
|
2021-04-15 00:23:44 +08:00
|
|
|
*May 4, 2021*
|
2021-04-06 17:49:48 +08:00
|
|
|
|
2021-04-15 00:23:44 +08:00
|
|
|
Django 3.2.1 fixes a security issue and several bugs in 3.2.
|
|
|
|
|
|
|
|
CVE-2021-31542: Potential directory-traversal via uploaded files
|
|
|
|
================================================================
|
|
|
|
|
|
|
|
``MultiPartParser``, ``UploadedFile``, and ``FieldFile`` allowed
|
|
|
|
directory-traversal via uploaded files with suitably crafted file names.
|
|
|
|
|
|
|
|
In order to mitigate this risk, stricter basename and path sanitation is now
|
2021-05-12 16:42:01 +08:00
|
|
|
applied.
|
2021-04-06 17:49:48 +08:00
|
|
|
|
|
|
|
Bugfixes
|
|
|
|
========
|
|
|
|
|
2021-04-03 20:47:27 +08:00
|
|
|
* Corrected detection of GDAL 3.2 on Windows (:ticket:`32544`).
|
2021-04-08 18:40:16 +08:00
|
|
|
|
|
|
|
* Fixed a bug in Django 3.2 where subclasses of ``BigAutoField`` and
|
|
|
|
``SmallAutoField`` were not allowed for the :setting:`DEFAULT_AUTO_FIELD`
|
|
|
|
setting (:ticket:`32620`).
|
2021-04-09 03:31:45 +08:00
|
|
|
|
|
|
|
* Fixed a regression in Django 3.2 that caused a crash of
|
|
|
|
``QuerySet.values()/values_list()`` after ``QuerySet.union()``,
|
|
|
|
``intersection()``, and ``difference()`` when it was ordered by an
|
|
|
|
unannotated field (:ticket:`32627`).
|
2021-04-13 15:15:04 +08:00
|
|
|
|
|
|
|
* Restored, following a regression in Django 3.2, displaying an exception
|
|
|
|
message on the technical 404 debug page (:ticket:`32637`).
|
2021-04-13 17:51:19 +08:00
|
|
|
|
|
|
|
* Fixed a bug in Django 3.2 where a system check would crash on a reverse
|
|
|
|
one-to-one relationships in ``CheckConstraint.check`` or
|
|
|
|
``UniqueConstraint.condition`` (:ticket:`32635`).
|
2021-04-14 18:23:47 +08:00
|
|
|
|
|
|
|
* Fixed a regression in Django 3.2 that caused a crash of
|
|
|
|
:attr:`.ModelAdmin.search_fields` when searching against phrases with
|
|
|
|
unbalanced quotes (:ticket:`32649`).
|
2021-04-14 20:50:01 +08:00
|
|
|
|
|
|
|
* Fixed a bug in Django 3.2 where variable lookup errors were logged rendering
|
|
|
|
the sitemap template if alternates were not defined (:ticket:`32648`).
|
2021-04-15 02:25:58 +08:00
|
|
|
|
|
|
|
* Fixed a regression in Django 3.2 that caused a crash when combining ``Q()``
|
|
|
|
objects which contains boolean expressions (:ticket:`32548`).
|
2021-04-15 03:11:17 +08:00
|
|
|
|
|
|
|
* Fixed a regression in Django 3.2 that caused a crash of ``QuerySet.update()``
|
|
|
|
on a queryset ordered by inherited or joined fields on MySQL and MariaDB
|
|
|
|
(:ticket:`32645`).
|
2021-04-14 19:45:24 +08:00
|
|
|
|
|
|
|
* Fixed a regression in Django 3.2 that caused a crash when decoding a cookie
|
|
|
|
value, used by ``django.contrib.messages.storage.cookie.CookieStorage``, in
|
|
|
|
the pre-Django 3.2 format (:ticket:`32643`).
|
2021-04-15 23:15:28 +08:00
|
|
|
|
|
|
|
* Fixed a regression in Django 3.2 that stopped the shift-key modifier
|
|
|
|
selecting multiple rows in the admin changelist (:ticket:`32647`).
|
2021-04-21 15:41:37 +08:00
|
|
|
|
|
|
|
* Fixed a bug in Django 3.2 where a system check would crash on the
|
|
|
|
:setting:`STATICFILES_DIRS` setting with a list of 2-tuples of
|
|
|
|
``(prefix, path)`` (:ticket:`32665`).
|
2021-04-21 10:25:52 +08:00
|
|
|
|
|
|
|
* Fixed a long standing bug involving queryset bitwise combination when used
|
|
|
|
with subqueries that began manifesting in Django 3.2, due to a separate fix
|
|
|
|
using ``Exists`` to ``exclude()`` multi-valued relationships
|
|
|
|
(:ticket:`32650`).
|
2021-04-24 08:50:27 +08:00
|
|
|
|
|
|
|
* Fixed a bug in Django 3.2 where variable lookup errors were logged when
|
|
|
|
rendering some admin templates (:ticket:`32681`).
|
2021-04-26 15:22:46 +08:00
|
|
|
|
|
|
|
* Fixed a bug in Django 3.2 where an admin changelist would crash when deleting
|
|
|
|
objects filtered against multi-valued relationships (:ticket:`32682`). The
|
2022-09-19 11:19:01 +08:00
|
|
|
admin changelist now uses ``Exists()`` instead of ``QuerySet.distinct()``
|
2021-04-26 15:22:46 +08:00
|
|
|
because calling ``delete()`` after ``distinct()`` is not allowed in Django
|
|
|
|
3.2 to address a data loss possibility.
|
2021-04-26 20:19:13 +08:00
|
|
|
|
|
|
|
* Fixed a regression in Django 3.2 where the calling process environment would
|
|
|
|
not be passed to the ``dbshell`` command on PostgreSQL (:ticket:`32687`).
|
2021-04-24 13:07:18 +08:00
|
|
|
|
|
|
|
* Fixed a performance regression in Django 3.2 when building complex filters
|
|
|
|
with subqueries (:ticket:`32632`). As a side-effect the private API to check
|
|
|
|
``django.db.sql.query.Query`` equality is removed.
|