========================== Django 1.9.1 release notes ========================== *January 2, 2016* Django 1.9.1 fixes several bugs in 1.9. Bugfixes ======== * Fixed ``BaseCache.get_or_set()`` with the ``DummyCache`` backend (:ticket:`25840`). * Fixed a regression in ``FormMixin`` causing forms to be validated twice (:ticket:`25548`, :ticket:`26018`). * Fixed a system check crash with nested ``ArrayField``\s (:ticket:`25867`). * Fixed a state bug when migrating a ``SeparateDatabaseAndState`` operation backwards (:ticket:`25896`). * Fixed a regression in ``CommonMiddleware`` causing ``If-None-Match`` checks to always return HTTP 200 (:ticket:`25900`). * Fixed missing ``varchar/text_pattern_ops`` index on ``CharField`` and ``TextField`` respectively when using ``AlterField`` on PostgreSQL (:ticket:`25412`). * Fixed admin's delete confirmation page's summary counts of related objects (:ticket:`25883`). * Added ``from __future__ import unicode_literals`` to the default ``apps.py`` created by ``startapp`` on Python 2 (:ticket:`25909`). Add this line to your own ``apps.py`` files created using Django 1.9 if you want your migrations to work on both Python 2 and Python 3. * Prevented ``QuerySet.delete()`` from crashing on MySQL when querying across relations (:ticket:`25882`). * Fixed evaluation of zero-length slices of ``QuerySet.values()`` (:ticket:`25894`). * Fixed a state bug when using an ``AlterModelManagers`` operation (:ticket:`25852`). * Fixed ``TypedChoiceField`` change detection with nullable fields (:ticket:`25942`). * Fixed incorrect timezone warnings in custom admin templates that don't have a ``data-admin-utc-offset`` attribute in the ``body`` tag. (:ticket:`25845`). * Fixed a regression which prevented using a language not in Django's default language list (:setting:`LANGUAGES`) (:ticket:`25915`). * Avoided hiding some exceptions, like an invalid ``INSTALLED_APPS`` setting, behind ``AppRegistryNotReady`` when starting ``runserver`` (:ticket:`25510`). This regression appeared in 1.8.5 as a side effect of fixing :ticket:`24704` and by mistake the fix wasn't applied to the ``stable/1.9.x`` branch. * Fixed ``migrate --fake-initial`` detection of many-to-many tables (:ticket:`25922`). * Restored the functionality of the admin's ``list_editable`` add and change buttons (:ticket:`25903`). * Fixed ``isnull`` query lookup for ``ForeignObject`` (:ticket:`25972`). * Fixed a regression in the admin which ignored line breaks in read-only fields instead of converting them to ``
`` (:ticket:`25465`). * Fixed incorrect object reference in ``SingleObjectMixin.get_context_object_name()`` (:ticket:`26006`). * Made ``loaddata`` skip disabling and enabling database constraints when it doesn't load any fixtures (:ticket:`23372`). * Restored ``contrib.auth`` hashers compatibility with py-bcrypt (:ticket:`26016`). * Fixed a crash in ``QuerySet.values()/values_list()`` after an ``annotate()`` and ``order_by()`` when ``values()/values_list()`` includes a field not in the ``order_by()`` (:ticket:`25316`).