January 2, 2016
Django 1.9.1 fixes several bugs in 1.9.
Fixed BaseCache.get_or_set()
with the DummyCache
backend
(#25840).
Fixed a regression in FormMixin
causing forms to be validated twice
(#25548, #26018).
Fixed a system check crash with nested ArrayField
s (#25867).
Fixed a state bug when migrating a SeparateDatabaseAndState
operation
backwards (#25896).
Fixed a regression in CommonMiddleware
causing If-None-Match
checks
to always return HTTP 200 (#25900).
Fixed missing varchar/text_pattern_ops
index on CharField
and
TextField
respectively when using AlterField
on PostgreSQL
(#25412).
Fixed admin’s delete confirmation page’s summary counts of related objects (#25883).
Added from __future__ import unicode_literals
to the default apps.py
created by startapp
on Python 2 (#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 (#25882).
Fixed evaluation of zero-length slices of QuerySet.values()
(#25894).
Fixed a state bug when using an AlterModelManagers
operation
(#25852).
Fixed TypedChoiceField
change detection with nullable fields
(#25942).
Fixed incorrect timezone warnings in custom admin templates that don’t have
a data-admin-utc-offset
attribute in the body
tag.
(#25845).
Fixed a regression which prevented using a language not in Django’s default
language list (LANGUAGES
) (#25915).
Avoided hiding some exceptions, like an invalid INSTALLED_APPS
setting,
behind AppRegistryNotReady
when starting runserver
(#25510).
This regression appeared in 1.8.5 as a side effect of fixing #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
(#25922).
Restored the functionality of the admin’s list_editable
add and change
buttons (#25903).
Fixed isnull
query lookup for ForeignObject
(#25972).
Fixed a regression in the admin which ignored line breaks in read-only fields
instead of converting them to <br>
(#25465).
Fixed incorrect object reference in
SingleObjectMixin.get_context_object_name()
(#26006).
Made loaddata
skip disabling and enabling database constraints when it
doesn’t load any fixtures (#23372).
Restored contrib.auth
hashers compatibility with py-bcrypt
(#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()
(#25316).
Dec 25, 2023