Django 1.8.1 release notes
May 1, 2015
Django 1.8.1 fixes several bugs in 1.8 and includes some optimizations in the
migrations framework.
Bugfixes
- Added support for serializing timedelta objects in
migrations (#24566).
- Restored proper parsing of the testserver command’s positional
arguments (fixture names) (#24571).
- Prevented TypeError in translation functions check_for_language() and
get_language_bidi() when translations are deactivated (#24569).
- Fixed squashmigrations command when using
SeparateDatabaseAndState
(#24278).
- Stripped microseconds from datetime values when using an older version of
the MySQLdb DB API driver as it does not support fractional seconds
(#24584).
- Fixed a migration crash when altering
ManyToManyFields (#24513).
- Fixed a crash with QuerySet.update() on foreign keys to one-to-one fields
(#24578).
- Fixed a regression in the model detail view of
admindocs when a model has a reverse foreign key
relation (#24624).
- Prevented arbitrary file inclusions in admindocs
(#24625).
- Fixed a crash with QuerySet.update() on foreign keys to instances with
uuid primary keys (#24611).
- Fixed database introspection with SQLite 3.8.9 (released April 8, 2015)
(#24637).
- Updated urlpatterns examples generated by startproject to
remove usage of referencing views by dotted path in
url() which is deprecated in Django 1.8
(#24635).
- Fixed queries where an expression was referenced in order_by(), but wasn’t
part of the select clause. An example query is
qs.annotate(foo=F('field')).values('pk').order_by('foo')) (#24615).
- Fixed a database table name quoting regression (#24605).
- Prevented the loss of null/not null column properties during field
alteration of MySQL databases (#24595).
- Fixed JavaScript path of contrib.admin’s related field widget when using
alternate static file storages (#24655).
- Fixed a migration crash when adding new relations to models
(#24573).
- Fixed a migration crash when applying migrations with model managers on
Python 3 that were generated on Python 2 (#24701).
- Restored the ability to use iterators as queryset filter arguments
(#24719).
- Fixed a migration crash when renaming the target model of a many-to-many
relation (#24725).
- Removed flushing of the test database with --keepdb, which
prevented apps with data migrations from using the option (#24729).
- Fixed makemessages crash in some locales (#23271).
- Fixed help text positioning of contrib.admin fields that use the
ModelAdmin.filter_horizontal and filter_vertical options
(#24676).
- Fixed AttributeError: function ‘GDALAllRegister’ not found error when
initializing contrib.gis on Windows.
Optimizations
- Changed ModelState to deepcopy fields instead of deconstructing and
reconstructing (#24591). This speeds up the rendering of model
states and reduces memory usage when running manage.py migrate (although other changes in this release may negate any performance
benefits).