Django 2.1.1 release notes¶
August 31, 2018
Django 2.1.1 fixes several bugs in 2.1.
Bugfixes¶
Fixed a race condition in
QuerySet.update_or_create()
that could result in data loss (#29499).Fixed a regression where
QueryDict.urlencode()
crashed if the dictionary contains a non-string value (#29627).Fixed a regression in Django 2.0 where using
manage.py test --keepdb
fails on PostgreSQL if the database exists and the user doesn’t have permission to create databases (#29613).Fixed a regression in Django 2.0 where combining
Q
objects with__in
lookups and lists crashed (#29643).Fixed translation failure of
DurationField
’s “overflow” error message (#29623).Fixed a regression where the admin change form crashed if the user doesn’t have the ‘add’ permission to a model that uses
TabularInline
(#29637).Fixed a regression where a
related_query_name
reverse accessor wasn’t set up when aGenericRelation
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()
orvalues_list()
after combining querysets withextra()
withunion()
,difference()
, orintersection()
crashed due to mismatching columns (#29694).Fixed crash if
InlineModelAdmin.has_add_permission()
doesn’t accept theobj
argument (#29723).