---
title: "Notes de publication de Django 3.1.1"
version: 3.2
locale: fr
source: https://docs.djangoproject.com/fr/3.2/releases/3.1.1/
canonical: https://djangodocs.dev/fr/3.2/releases/3.1.1/
---
# Notes de publication de Django 3.1.1

*1er septembre 2020*

Django 3.1.1 fixes two security issues and several bugs in 3.1.

## CVE-2020-24583 : permissions incorrectes sur les répertoires de niveau intermédiaire avec Python 3.7+

Avec Python 3.7+, le mode [`FILE_UPLOAD_DIRECTORY_PERMISSIONS`](/fr/3.2/ref/settings/#std-setting-FILE_UPLOAD_DIRECTORY_PERMISSIONS) n’était pas appliqué aux répertoires de niveau intermédiaire créés dans le processus de téléversement de fichiers et pour les répertoires de niveau intermédiaire des fichiers statiques collectés lors de l’utilisation de la commande d’administration [`collectstatic`](/fr/3.2/ref/contrib/staticfiles/#django-admin-collectstatic).

Vous devriez examiner et corriger manuellement les permissions sur les répertoires de niveau intermédaire existants.

## CVE-2020-24584: Permission escalation in intermediate-level directories of the file system cache on Python 3.7+

On Python 3.7+, the intermediate-level directories of the file system cache had
the system’s standard umask rather than `0o077` (no group or others
permissions).

## Correction de bogues

- Les retours de ligne dans les étiquettes d’actions traduites en langues est-asiatiques ont été corrigés dans la barre latérale de navigation du site d’administration ([#31853](https://code.djangoproject.com/ticket/31853)).
- Les retours de ligne dans les longs noms de modèles dans la barre latérale de navigation du site d’administration ont été corrigés ([#31854](https://code.djangoproject.com/ticket/31854)).
- Le codage des données de sessions a été corrigé dans les cas de mises à jour de plusieurs instances du même projet vers Django 3.1 ([#31864](https://code.djangoproject.com/ticket/31864)).
- Le gabarit de la barre latérale de navigation du site d’administration a été ajusté pour réduire la journalisation de débogage lors du rendu ([#31865](https://code.djangoproject.com/ticket/31865)).
- Une possibilité de perte de données a été corrigée dans [`select_for_update()`](/fr/3.2/ref/models/querysets/#django.db.models.query.QuerySet.select_for_update). Lorsqu’on utilisait des champs relationnels pointant vers un modèle mandataire dans le paramètre `of`, le modèle correspondant n’était pas verrouillé ([#31866](https://code.djangoproject.com/ticket/31866)).
- Une possibilité de perte de données a été corrigée, à la suite d’une régression dans Django 2.0, lors de la copie d’instances de modèles avec une valeur de champ mise en cache ([#31863](https://code.djangoproject.com/ticket/31863)).
- Correction d’une régression dans Django 3.1 qui provoquait un plantage lors du décodage des données de sessions non valides ([#31895](https://code.djangoproject.com/ticket/31895)).
- Une obsolescence a été annulée dans Django 3.1, car elle provoquait un plantage lors du passage de paramètres nommés obsolètes à un jeu de requête dans `TemplateView.get_context_data()` ([#31877](https://code.djangoproject.com/ticket/31877)).
- La sensibilité au fil d’exécution des points d’entrée [`MiddlewareMixin.process_request()`](/fr/3.2/topics/http/middleware/#django.utils.deprecation.MiddlewareMixin) et `process_response()` a été forcée dans un contexte asynchrone ([#31905](https://code.djangoproject.com/ticket/31905)).
- L’expression de requête `__in` des transformations de clé de [`JSONField`](/fr/3.2/ref/models/fields/#django.db.models.JSONField) a été corrigée avec MariaDB, MySQL, Oracle et SQLite ([#31936](https://code.djangoproject.com/ticket/31936)).
- Fixed a regression in Django 3.1 that caused permission errors in
  `CommonPasswordValidator` and `settings.py` generated by the
  [`startproject`](/fr/3.2/ref/django-admin/#django-admin-startproject) command, when user didn’t have permissions to all
  intermediate directories in a Django installation path ([#31912](https://code.djangoproject.com/ticket/31912)).
- Fixed detecting an async `get_response` callable in various builtin
  middlewares ([#31928](https://code.djangoproject.com/ticket/31928)).
- Fixed a `QuerySet.order_by()` crash on PostgreSQL when ordering and
  grouping by [`JSONField`](/fr/3.2/ref/models/fields/#django.db.models.JSONField) with a custom
  [`decoder`](/fr/3.2/ref/models/fields/#django.db.models.JSONField.decoder) ([#31956](https://code.djangoproject.com/ticket/31956)). As a
  consequence, fetching a `JSONField` with raw SQL now returns a string
  instead of pre-loaded data. You will need to explicitly call `json.loads()`
  in such cases.
- Fixed a `QuerySet.delete()` crash on MySQL, following a performance
  regression in Django 3.1 on MariaDB 10.3.2+, when filtering against an
  aggregate function ([#31965](https://code.djangoproject.com/ticket/31965)).
- Fixed a `django.contrib.admin.EmptyFieldListFilter` crash when using on
  reverse relations ([#31952](https://code.djangoproject.com/ticket/31952)).
- Prevented content overflowing in the admin changelist view when the
  navigation sidebar is enabled ([#31901](https://code.djangoproject.com/ticket/31901)).
