========================== 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`). * Fixed queryset annotations when using ``Case`` expressions with ``exclude()`` (:ticket:`24833`). * Corrected join promotion for multiple ``Case`` expressions. Annotating a query with multiple ``Case`` expressions could unexpectedly filter out results (:ticket:`24924`).