# Django 5.2.16 documentation

# 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 `ManyToManyField`s (#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 `django.conf.urls.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 `test --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).