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

*September 1, 2020*

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

## CVE-2020-24583: Incorrect permissions on intermediate-level directories on Python 3.7+

On Python 3.7+, [`FILE_UPLOAD_DIRECTORY_PERMISSIONS`](/fr/3.1/ref/settings/#std-setting-FILE_UPLOAD_DIRECTORY_PERMISSIONS) mode was not
applied to intermediate-level directories created in the process of uploading
files and to intermediate-level collected static directories when using the
[`collectstatic`](/fr/3.1/ref/contrib/staticfiles/#django-admin-collectstatic) management command.

You should review and manually fix permissions on existing intermediate-level
directories.

## 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.1/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.1/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.1/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.1/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.1/ref/models/fields/#django.db.models.JSONField) with a custom
  [`decoder`](/fr/3.1/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)).
