========================== 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 :class:`~datetime.timedelta` objects in migrations (:ticket:`24566`). * Restored proper parsing of the :djadmin:`testserver` command's positional arguments (fixture names) (:ticket:`24571`). * Prevented ``TypeError`` in translation functions ``check_for_language()`` and ``get_language_bidi()`` when translations are deactivated (:ticket:`24569`). * Fixed :djadmin:`squashmigrations` command when using :class:`~django.db.migrations.operations.SeparateDatabaseAndState` (:ticket:`24278`). * Stripped microseconds from ``datetime`` values when using an older version of the MySQLdb DB API driver as it does not support fractional seconds (:ticket:`24584`). * Fixed a migration crash when altering :class:`~django.db.models.ManyToManyField`\s (:ticket:`24513`). * Fixed a crash with ``QuerySet.update()`` on foreign keys to one-to-one fields (:ticket:`24578`). * Fixed a regression in the model detail view of :mod:`~django.contrib.admindocs` when a model has a reverse foreign key relation (:ticket:`24624`). * Prevented arbitrary file inclusions in :mod:`~django.contrib.admindocs` (:ticket:`24625`). * Fixed a crash with ``QuerySet.update()`` on foreign keys to instances with ``uuid`` primary keys (:ticket:`24611`). * Fixed database introspection with SQLite 3.8.9 (released April 8, 2015) (:ticket:`24637`). * Updated ``urlpatterns`` examples generated by :djadmin:`startproject` to remove usage of referencing views by dotted path in :func:`~django.conf.urls.url` which is deprecated in Django 1.8 (:ticket:`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'))`` (:ticket:`24615`). * Fixed a database table name quoting regression (:ticket:`24605`). * Prevented the loss of ``null``/``not null`` column properties during field alteration of MySQL databases (:ticket:`24595`). * Fixed JavaScript path of ``contrib.admin``’s related field widget when using alternate static file storages (:ticket:`24655`). * Fixed a migration crash when adding new relations to models (:ticket:`24573`). * Fixed a migration crash when applying migrations with model managers on Python 3 that were generated on Python 2 (:ticket:`24701`). * Restored the ability to use iterators as queryset filter arguments (:ticket:`24719`). * Fixed a migration crash when renaming the target model of a many-to-many relation (:ticket:`24725`). * Removed flushing of the test database with :option:`test --keepdb`, which prevented apps with data migrations from using the option (:ticket:`24729`). * Fixed ``makemessages`` crash in some locales (:ticket:`23271`). * Fixed help text positioning of ``contrib.admin`` fields that use the ``ModelAdmin.filter_horizontal`` and ``filter_vertical`` options (:ticket:`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 (:ticket:`24591`). This speeds up the rendering of model states and reduces memory usage when running :djadmin:`manage.py migrate ` (although other changes in this release may negate any performance benefits).