===========================
Django 1.11.2 release notes
===========================

*Under development*

Django 1.11.2 fixes several bugs in 1.11.1.

Bugfixes
========

* Added detection for GDAL 2.1 and 2.0, and removed detection for unsupported
  versions 1.7 and 1.8 (:ticket:`28181`).

* Changed ``contrib.gis`` to raise ``ImproperlyConfigured`` rather than
  ``GDALException`` if ``gdal`` isn't installed, to allow third-party apps to
  catch that exception (:ticket:`28178`).

* Fixed ``django.utils.http.is_safe_url()`` crash on invalid IPv6 URLs
  (:ticket:`28142`).

* Fixed regression causing pickling of model fields to crash (:ticket:`28188`).

* Fixed ``django.contrib.auth.authenticate()`` when multiple authentication
  backends don't accept a positional ``request`` argument (:ticket:`28207`).

* Fixed introspection of index field ordering on PostgreSQL (:ticket:`28197`).

* Fixed a regression where ``Model._state.adding`` wasn't set correctly on
  multi-table inheritance parent models after saving a child model
  (:ticket:`28210`).

* Allowed ``DjangoJSONEncoder`` to serialize
  ``django.utils.deprecation.CallableBool`` (:ticket:`28230`).

* Relaxed the validation added in Django 1.11 of the fields in the ``defaults``
  argument of ``QuerySet.get_or_create()`` and ``update_or_create()`` to
  reallow settable model properties (:ticket:`28222`).
