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).