==========================
Django 1.8.3 release notes
==========================

*Under development*

Django 1.8.3 fixes several bugs in 1.8.2.

Bugfixes
========

* Fixed ``BaseRangeField.prepare_value()`` to use each ``base_field``’s
  ``prepare_value()`` method (:ticket:`24841`).

* Fixed crash during :djadmin:`makemigrations` if a migrations module either
  is missing ``__init__.py`` or is a file (:ticket:`24848`).

* Fixed ``QuerySet.exists()`` returning incorrect results after annotation with
  ``Count()`` (:ticket:`24835`).

* Corrected ``HStoreField.has_changed()`` (:ticket:`24844`).

* Reverted an optimization to the CSRF template context processor which caused
  a regression (:ticket:`24836`).

* Fixed a regression which caused template context processors to overwrite
  variables set on a ``RequestContext`` after it's created (:ticket:`24847`).

* Prevented the loss of ``null``/``not null`` column properties during field
  renaming of MySQL databases (:ticket:`24817`).

* Fixed a crash when using a reverse one-to-one relation in
  ``ModelAdmin.list_display`` (:ticket:`24851`).

* Fixed quoting of SQL when renaming a field to ``AutoField`` in PostgreSQL
  (:ticket:`24892`).

* Fixed lack of unique constraint when changing a field from
  ``primary_key=True`` to ``unique=True`` (:ticket:`24893`).

* Fixed queryset pickling when using ``prefetch_related()`` after deleting
  objects (:ticket:`24831`).

* Allowed using ``choices`` longer than 1 day with ``DurationField``
  (:ticket:`24897`).

* Fixed a crash when loading squashed migrations from two apps with a
  dependency between them, where the dependent app's replaced migrations are
  partially applied (:ticket:`24895`).

* Fixed recording of applied status for squashed (replacement) migrations
  (:ticket:`24628`).
