# Documentation Django 3.1.9.dev

# Notes de publication de Django 2.1.1

31 août 2018

Django 2.1.1 corrige plusieurs bogues de la version 2.1.

## Correction de bogues

- Correction d’un conflit de concurrence dans `QuerySet.update_or_create()` qui pourrait aboutir à des pertes de données (#29499).
- Correction d’une régression où `QueryDict.urlencode()` plante si le dictionnaire contient une valeur qui n’est pas une chaîne (#29627).
- Correction d’une régression dans Django 2.0 où l’utilisation de `manage.py test --keepdb` échoue avec PostgreSQL si la base de données existe et que l’utilisateur n’a pas la permission de créer des bases de données (#29613).
- Correction d’une régression dans Django 2.0 où la combinaison d’objets `Q` avec des requêtes `__in` et des listes plantent (#29643).
- Correction d’un échec de traduction du message d’erreur « overflow » du champ `DurationField` (#29623).
- Correction d’une régression concernant le plantage du formulaire de modification du site d’administration si l’utilisateur ne dispose pas de la permission `add` d’un modèle utilisant `TabularInline` (#29637).
- Fixed a regression where a `related_query_name` reverse accessor wasn’t set up when a `GenericRelation` is declared on an abstract base model (#29653).
- Fixed the test client’s JSON serialization of a request data dictionary for structured content type suffixes (#29662).
- Made the admin change view redirect to the changelist view after a POST if the user has the “view” permission (#29663).
- Fixed admin change view crash for view-only users if the form has an extra form field (#29682).
- Fixed a regression in Django 2.0.5 where `QuerySet.values()` or `values_list()` after combining querysets with `extra()` with `union()`, `difference()`, or `intersection()` crashed due to mismatching columns (#29694).
- Fixed crash if `InlineModelAdmin.has_add_permission()` doesn’t accept the `obj` argument (#29723).