{"title":"Django 1.8.1 release notes","version":"dev","locale":"en","docname":"releases/1.8.1","url":"/en/dev/releases/1.8.1/","canonical":"https://djangodocs.dev/en/dev/releases/1.8.1/","summary":"Django 1.8.1 fixes several bugs in 1.8 and includes some optimizations in the migrations framework.","html":"<h1>Django 1.8.1 release notes<a class=\"heading-anchor\" href=\"#django-1-8-1-release-notes\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p><em>May 1, 2015</em></p>\n<p>Django 1.8.1 fixes several bugs in 1.8 and includes some optimizations in the\nmigrations framework.</p>\n<section id=\"bugfixes\">\n<h2>Bugfixes<a class=\"heading-anchor\" href=\"#bugfixes\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<ul class=\"simple\">\n<li><p>Added support for serializing <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.timedelta\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\">timedelta</code></a> objects in\nmigrations (<a class=\"extlink-ticket reference external\" href=\"https://code.djangoproject.com/ticket/24566\">#24566</a>).</p></li>\n<li><p>Restored proper parsing of the <a class=\"reference internal\" href=\"/en/dev/ref/django-admin/#django-admin-testserver\"><code class=\"xref std std-djadmin docutils literal notranslate\">testserver</code></a> command’s positional\narguments (fixture names) (<a class=\"extlink-ticket reference external\" href=\"https://code.djangoproject.com/ticket/24571\">#24571</a>).</p></li>\n<li><p>Prevented <code class=\"docutils literal notranslate\">TypeError</code> in translation functions <code class=\"docutils literal notranslate\">check_for_language()</code> and\n<code class=\"docutils literal notranslate\">get_language_bidi()</code> when translations are deactivated (<a class=\"extlink-ticket reference external\" href=\"https://code.djangoproject.com/ticket/24569\">#24569</a>).</p></li>\n<li><p>Fixed <a class=\"reference internal\" href=\"/en/dev/ref/django-admin/#django-admin-squashmigrations\"><code class=\"xref std std-djadmin docutils literal notranslate\">squashmigrations</code></a> command when using\n<a class=\"reference internal\" href=\"/en/dev/ref/migration-operations/#django.db.migrations.operations.SeparateDatabaseAndState\" title=\"django.db.migrations.operations.SeparateDatabaseAndState\"><code class=\"xref py py-class docutils literal notranslate\">SeparateDatabaseAndState</code></a>\n(<a class=\"extlink-ticket reference external\" href=\"https://code.djangoproject.com/ticket/24278\">#24278</a>).</p></li>\n<li><p>Stripped microseconds from <code class=\"docutils literal notranslate\">datetime</code> values when using an older version of\nthe MySQLdb DB API driver as it does not support fractional seconds\n(<a class=\"extlink-ticket reference external\" href=\"https://code.djangoproject.com/ticket/24584\">#24584</a>).</p></li>\n<li><p>Fixed a migration crash when altering\n<a class=\"reference internal\" href=\"/en/dev/ref/models/fields/#django.db.models.ManyToManyField\" title=\"django.db.models.ManyToManyField\"><code class=\"xref py py-class docutils literal notranslate\">ManyToManyField</code></a>s (<a class=\"extlink-ticket reference external\" href=\"https://code.djangoproject.com/ticket/24513\">#24513</a>).</p></li>\n<li><p>Fixed a crash with <code class=\"docutils literal notranslate\">QuerySet.update()</code> on foreign keys to one-to-one fields\n(<a class=\"extlink-ticket reference external\" href=\"https://code.djangoproject.com/ticket/24578\">#24578</a>).</p></li>\n<li><p>Fixed a regression in the model detail view of\n<a class=\"reference internal\" href=\"/en/dev/ref/contrib/admin/admindocs/#module-django.contrib.admindocs\" title=\"django.contrib.admindocs: Django's admin documentation generator.\"><code class=\"xref py py-mod docutils literal notranslate\">admindocs</code></a> when a model has a reverse foreign key\nrelation (<a class=\"extlink-ticket reference external\" href=\"https://code.djangoproject.com/ticket/24624\">#24624</a>).</p></li>\n<li><p>Prevented arbitrary file inclusions in <a class=\"reference internal\" href=\"/en/dev/ref/contrib/admin/admindocs/#module-django.contrib.admindocs\" title=\"django.contrib.admindocs: Django's admin documentation generator.\"><code class=\"xref py py-mod docutils literal notranslate\">admindocs</code></a>\n(<a class=\"extlink-ticket reference external\" href=\"https://code.djangoproject.com/ticket/24625\">#24625</a>).</p></li>\n<li><p>Fixed a crash with <code class=\"docutils literal notranslate\">QuerySet.update()</code> on foreign keys to instances with\n<code class=\"docutils literal notranslate\">uuid</code> primary keys (<a class=\"extlink-ticket reference external\" href=\"https://code.djangoproject.com/ticket/24611\">#24611</a>).</p></li>\n<li><p>Fixed database introspection with SQLite 3.8.9 (released April 8, 2015)\n(<a class=\"extlink-ticket reference external\" href=\"https://code.djangoproject.com/ticket/24637\">#24637</a>).</p></li>\n<li><p>Updated <code class=\"docutils literal notranslate\">urlpatterns</code> examples generated by <a class=\"reference internal\" href=\"/en/dev/ref/django-admin/#django-admin-startproject\"><code class=\"xref std std-djadmin docutils literal notranslate\">startproject</code></a> to\nremove usage of referencing views by dotted path in\n<code class=\"docutils literal notranslate\">django.conf.urls.url()</code> which is deprecated in Django 1.8\n(<a class=\"extlink-ticket reference external\" href=\"https://code.djangoproject.com/ticket/24635\">#24635</a>).</p></li>\n<li><p>Fixed queries where an expression was referenced in <code class=\"docutils literal notranslate\">order_by()</code>, but\nwasn’t part of the select clause. An example query is\n<code class=\"docutils literal notranslate\">qs.annotate(foo=F('field')).values('pk').order_by('foo')</code>\n(<a class=\"extlink-ticket reference external\" href=\"https://code.djangoproject.com/ticket/24615\">#24615</a>).</p></li>\n<li><p>Fixed a database table name quoting regression (<a class=\"extlink-ticket reference external\" href=\"https://code.djangoproject.com/ticket/24605\">#24605</a>).</p></li>\n<li><p>Prevented the loss of <code class=\"docutils literal notranslate\">null</code>/<code class=\"docutils literal notranslate\">not null</code> column properties during field\nalteration of MySQL databases (<a class=\"extlink-ticket reference external\" href=\"https://code.djangoproject.com/ticket/24595\">#24595</a>).</p></li>\n<li><p>Fixed JavaScript path of <code class=\"docutils literal notranslate\">contrib.admin</code>’s related field widget when using\nalternate static file storages (<a class=\"extlink-ticket reference external\" href=\"https://code.djangoproject.com/ticket/24655\">#24655</a>).</p></li>\n<li><p>Fixed a migration crash when adding new relations to models\n(<a class=\"extlink-ticket reference external\" href=\"https://code.djangoproject.com/ticket/24573\">#24573</a>).</p></li>\n<li><p>Fixed a migration crash when applying migrations with model managers on\nPython 3 that were generated on Python 2 (<a class=\"extlink-ticket reference external\" href=\"https://code.djangoproject.com/ticket/24701\">#24701</a>).</p></li>\n<li><p>Restored the ability to use iterators as queryset filter arguments\n(<a class=\"extlink-ticket reference external\" href=\"https://code.djangoproject.com/ticket/24719\">#24719</a>).</p></li>\n<li><p>Fixed a migration crash when renaming the target model of a many-to-many\nrelation (<a class=\"extlink-ticket reference external\" href=\"https://code.djangoproject.com/ticket/24725\">#24725</a>).</p></li>\n<li><p>Removed flushing of the test database with <a class=\"reference internal\" href=\"/en/dev/ref/django-admin/#cmdoption-test-keepdb\"><code class=\"xref std std-option docutils literal notranslate\">test --keepdb</code></a>, which\nprevented apps with data migrations from using the option (<a class=\"extlink-ticket reference external\" href=\"https://code.djangoproject.com/ticket/24729\">#24729</a>).</p></li>\n<li><p>Fixed <code class=\"docutils literal notranslate\">makemessages</code> crash in some locales (<a class=\"extlink-ticket reference external\" href=\"https://code.djangoproject.com/ticket/23271\">#23271</a>).</p></li>\n<li><p>Fixed help text positioning of <code class=\"docutils literal notranslate\">contrib.admin</code> fields that use the\n<code class=\"docutils literal notranslate\">ModelAdmin.filter_horizontal</code> and <code class=\"docutils literal notranslate\">filter_vertical</code> options\n(<a class=\"extlink-ticket reference external\" href=\"https://code.djangoproject.com/ticket/24676\">#24676</a>).</p></li>\n<li><p>Fixed <code class=\"docutils literal notranslate\">AttributeError: function 'GDALAllRegister' not found</code> error when\ninitializing <code class=\"docutils literal notranslate\">contrib.gis</code> on Windows.</p></li>\n</ul>\n</section>\n<section id=\"optimizations\">\n<h2>Optimizations<a class=\"heading-anchor\" href=\"#optimizations\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<ul class=\"simple\">\n<li><p>Changed <code class=\"docutils literal notranslate\">ModelState</code> to deepcopy fields instead of deconstructing and\nreconstructing (<a class=\"extlink-ticket reference external\" href=\"https://code.djangoproject.com/ticket/24591\">#24591</a>). This speeds up the rendering of model\nstates and reduces memory usage when running <a class=\"reference internal\" href=\"/en/dev/ref/django-admin/#django-admin-migrate\"><code class=\"xref std std-djadmin docutils literal notranslate\">manage.py migrate</code></a> (although other changes in this release may negate any performance\nbenefits).</p></li>\n</ul>\n</section>","rootId":"django-1-8-1-release-notes","toc":[{"title":"Bugfixes","anchor":"bugfixes","children":[]},{"title":"Optimizations","anchor":"optimizations","children":[]}],"breadcrumbs":[{"docname":"releases/index","title":"Release notes","url":"/en/dev/releases/"}],"prev":{"docname":"releases/1.8.2","title":"Django 1.8.2 release notes","url":"/en/dev/releases/1.8.2/"},"next":{"docname":"releases/1.8","title":"Django 1.8 release notes","url":"/en/dev/releases/1.8/"},"formats":{"html":"/en/dev/releases/1.8.1/","markdown":"/en/dev/releases/1.8.1.md","json":"/en/dev/releases/1.8.1.json"},"source":"https://github.com/django/django/blob/main/docs/releases/1.8.1.txt","official":"https://docs.djangoproject.com/en/dev/releases/1.8.1/","inVersions":["dev","6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0","1.11","1.10","1.9","1.8"],"inLocales":["en"]}