---
title: "Django 2.1.1 release notes"
version: 2.2
locale: id
source: https://docs.djangoproject.com/id/2.2/releases/2.1.1/
canonical: https://djangodocs.dev/id/2.2/releases/2.1.1/
---
# Django 2.1.1 release notes

*August 31, 2018*

Django 2.1.1 fixes several bugs in 2.1.

## Perbaikan kesalahan

- Fixed a race condition in `QuerySet.update_or_create()` that could result
  in data loss ([#29499](https://code.djangoproject.com/ticket/29499)).
- Fixed a regression where `QueryDict.urlencode()` crashed if the dictionary
  contains a non-string value ([#29627](https://code.djangoproject.com/ticket/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](https://code.djangoproject.com/ticket/29613)).
- Fixed a regression in Django 2.0 where combining `Q` objects with `__in`
  lookups and lists crashed ([#29643](https://code.djangoproject.com/ticket/29643)).
- Fixed translation failure of `DurationField`'s "overflow" error message
  ([#29623](https://code.djangoproject.com/ticket/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](https://code.djangoproject.com/ticket/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](https://code.djangoproject.com/ticket/29653)).
- Fixed the test client's JSON serialization of a request data dictionary for
  structured content type suffixes ([#29662](https://code.djangoproject.com/ticket/29662)).
- Made the admin change view redirect to the changelist view after a POST if
  the user has the 'view' permission ([#29663](https://code.djangoproject.com/ticket/29663)).
- Fixed admin change view crash for view-only users if the form has an extra
  form field ([#29682](https://code.djangoproject.com/ticket/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](https://code.djangoproject.com/ticket/29694)).
- Fixed crash if `InlineModelAdmin.has_add_permission()` doesn't accept the
  `obj` argument ([#29723](https://code.djangoproject.com/ticket/29723)).
