Django 1.9.1 release notes — Django documentation

From Get docs
Django/docs/3.2.x/releases/1.9.1

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 ArrayFields (: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 <br> (: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`).