django1/docs/releases/1.6.3.txt

72 lines
3.0 KiB
Plaintext

==========================
Django 1.6.3 release notes
==========================
*Under development*
This is Django 1.6.3, a bugfix release for Django 1.6. Django 1.6.3 fixes
several bugs in 1.6.2 and makes one backwards-incompatible change:
``select_for_update()`` requires a transaction
==============================================
Historically, queries that use
:meth:`~django.db.models.query.QuerySet.select_for_update()` could be
executed in autocommit mode, outside of a transaction. Before Django
1.6, Django's automatic transactions mode allowed this to be used to
lock records until the next write operation. Django 1.6 introduced
database-level autocommit; since then, execution in such a context
voids the effect of ``select_for_update()``. It is, therefore, assumed
now to be an error and raises an exception.
This change was made because such errors can be caused by including an
app which expects global transactions (e.g. :setting:`ATOMIC_REQUESTS
<DATABASE-ATOMIC_REQUESTS>` set to ``True``), or Django's old autocommit
behavior, in a project which runs without them; and further, such
errors may manifest as data-corruption bugs.
This change may cause test failures if you use ``select_for_update()``
in a test class which is a subclass of
:class:`~django.test.TransactionTestCase` rather than
:class:`~django.test.TestCase`.
Other bugfixes and changes
==========================
* Content retrieved from the GeoIP library is now properly decoded from its
default ``iso-8859-1`` encoding
(`#21996 <http://code.djangoproject.com/ticket/21996>`_).
* Fixed ``AttributeError`` when using
:meth:`~django.db.models.query.QuerySet.bulk_create` with ``ForeignObject``
(`#21566 <http://code.djangoproject.com/ticket/21566>`_).
* Fixed crash of ``QuerySet``\s that use ``F() + timedelta()`` when their query
was compiled more once
(`#21643 <http://code.djangoproject.com/ticket/21643>`_).
* Prevented custom ``widget`` class attribute of
:class:`~django.forms.IntegerField` subclasses from being overwritten by the
code in their ``__init__`` method
(`#22245 <http://code.djangoproject.com/ticket/22245>`_).
* Improved :func:`~django.utils.html.strip_tags` accuracy (but it still cannot
guarantee an HTML-safe result, as stated in the documentation).
* Fixed a regression in the :mod:`django.contrib.gis` SQL compiler for
non-concrete fields (`#22250 <http://code.djangoproject.com/ticket/22250>`_).
* Fixed :attr:`ModelAdmin.preserve_filters
<django.contrib.admin.ModelAdmin.preserve_filters>` when running a site with
a URL prefix (`#21795 <http://code.djangoproject.com/ticket/21795>`_).
* Fixed a crash in the ``find_command`` management utility when the ``PATH``
environment variable wasn't set
(`#22256 <http://code.djangoproject.com/ticket/22256>`_).
* Fixed :djadmin:`changepassword` on Windows
(`#22364 <https://code.djangoproject.com/ticket/22364>`_).
Additionally, Django's vendored version of six, :mod:`django.utils.six` has been
upgraded to the latest release (1.6.1).