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 theDummyCache
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
causingIf-None-Match
checks to always return HTTP 200 (#25900). - Fixed missing
varchar/text_pattern_ops
index onCharField
andTextField
respectively when usingAlterField
on PostgreSQL (#25412). - Fixed admin’s delete confirmation page’s summary counts of related objects (#25883).
- Added
from __future__ import unicode_literals
to the defaultapps.py
created bystartapp
on Python 2 (#25909). Add this line to your ownapps.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 thebody
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, behindAppRegistryNotReady
when startingrunserver
(#25510). This regression appeared in 1.8.5 as a side effect of fixing #24704 and by mistake the fix wasn’t applied to thestable/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 forForeignObject
(#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 anannotate()
andorder_by()
whenvalues()/values_list()
includes a field not in theorder_by()
(#25316).