2014-03-21 10:19:19 +00:00
|
|
|
============================================
|
|
|
|
Django 1.8 release notes - UNDER DEVELOPMENT
|
|
|
|
============================================
|
|
|
|
|
|
|
|
Welcome to Django 1.8!
|
|
|
|
|
|
|
|
These release notes cover the `new features`_, as well as some `backwards
|
|
|
|
incompatible changes`_ you'll want to be aware of when upgrading from Django
|
|
|
|
1.6 or older versions. We've also dropped some features, which are detailed in
|
|
|
|
:ref:`our deprecation plan <deprecation-removed-in-1.8>`, and we've `begun the
|
|
|
|
deprecation process for some features`_.
|
|
|
|
|
|
|
|
.. _`new features`: `What's new in Django 1.8`_
|
|
|
|
.. _`backwards incompatible changes`: `Backwards incompatible changes in 1.8`_
|
|
|
|
.. _`begun the deprecation process for some features`: `Features deprecated in 1.8`_
|
|
|
|
|
|
|
|
Python compatibility
|
|
|
|
====================
|
|
|
|
|
|
|
|
Like Django 1.7, Django 1.8 requires Python 2.7 or above, though we
|
|
|
|
**highly recommend** the latest minor release.
|
|
|
|
|
|
|
|
What's new in Django 1.8
|
|
|
|
========================
|
|
|
|
|
|
|
|
...
|
|
|
|
|
|
|
|
Minor features
|
|
|
|
~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
:mod:`django.contrib.admin`
|
|
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
:mod:`django.contrib.auth`
|
|
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
:mod:`django.contrib.formtools`
|
|
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
:mod:`django.contrib.gis`
|
|
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
:mod:`django.contrib.messages`
|
|
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
:mod:`django.contrib.redirects`
|
|
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
:mod:`django.contrib.sessions`
|
|
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
:mod:`django.contrib.sitemaps`
|
|
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
:mod:`django.contrib.sites`
|
|
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
:mod:`django.contrib.staticfiles`
|
|
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
:mod:`django.contrib.syndication`
|
|
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
Cache
|
|
|
|
^^^^^
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
Email
|
|
|
|
^^^^^
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
File Storage
|
|
|
|
^^^^^^^^^^^^
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
File Uploads
|
|
|
|
^^^^^^^^^^^^
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
Forms
|
|
|
|
^^^^^
|
|
|
|
|
2014-03-22 17:16:49 +00:00
|
|
|
* Form widgets now render attributes with a value of ``True`` or ``False``
|
|
|
|
as HTML5 boolean attributes.
|
2014-03-21 10:19:19 +00:00
|
|
|
|
2014-03-22 18:08:04 +00:00
|
|
|
* The new :meth:`~django.forms.Form.has_error()` method allows checking
|
|
|
|
if a specific error has happened.
|
|
|
|
|
2014-03-03 17:59:03 +00:00
|
|
|
* If :attr:`~django.forms.Form.required_css_class` is defined on a form, then
|
|
|
|
the ``<label>`` tags for required fields will have this class present in its
|
|
|
|
attributes.
|
|
|
|
|
2014-03-21 10:19:19 +00:00
|
|
|
Internationalization
|
|
|
|
^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
Management Commands
|
|
|
|
^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
2014-03-25 13:43:51 +00:00
|
|
|
* :djadmin:`dumpdata` now has the option :djadminopt:`--output` which allows
|
|
|
|
specifying the file to which the serialized data is written.
|
2014-03-21 10:19:19 +00:00
|
|
|
|
|
|
|
Models
|
|
|
|
^^^^^^
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
Signals
|
|
|
|
^^^^^^^
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
Templates
|
|
|
|
^^^^^^^^^
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
Requests and Responses
|
|
|
|
^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
Tests
|
|
|
|
^^^^^
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
Validators
|
|
|
|
^^^^^^^^^^
|
|
|
|
|
|
|
|
* ...
|
|
|
|
|
|
|
|
Backwards incompatible changes in 1.8
|
|
|
|
=====================================
|
|
|
|
|
|
|
|
.. warning::
|
|
|
|
|
|
|
|
In addition to the changes outlined in this section, be sure to review the
|
|
|
|
:doc:`deprecation plan </internals/deprecation>` for any features that
|
|
|
|
have been removed. If you haven't updated your code within the
|
|
|
|
deprecation timeline for a given feature, its removal may appear as a
|
|
|
|
backwards incompatible change.
|
|
|
|
|
2014-03-29 18:57:28 +00:00
|
|
|
* Some operations on related objects such as
|
|
|
|
:meth:`~django.db.models.fields.related.RelatedManager.add()` or
|
|
|
|
:ref:`direct assignment<direct-assignment>` ran multiple data modifying
|
|
|
|
queries without wrapping them in transactions. To reduce the risk of data
|
|
|
|
corruption, all data modifying methods that affect multiple related objects
|
|
|
|
(i.e. ``add()``, ``remove()``, ``clear()``, and
|
|
|
|
:ref:`direct assignment<direct-assignment>`) now perform their data modifying
|
|
|
|
queries from within a transaction, provided your database supports
|
|
|
|
transactions.
|
|
|
|
|
|
|
|
This has one backwards incompatible side effect, signal handlers triggered
|
|
|
|
from these methods are now executed within the method's transaction and
|
|
|
|
any exception in a signal handler will prevent the whole operation.
|
2014-03-21 10:19:19 +00:00
|
|
|
|
|
|
|
Miscellaneous
|
|
|
|
~~~~~~~~~~~~~
|
|
|
|
|
2014-03-26 17:10:58 +00:00
|
|
|
* ``URLField.to_python`` no longer adds a trailing slash to pathless URLs.
|
2014-03-21 10:19:19 +00:00
|
|
|
|
2014-03-27 22:02:28 +00:00
|
|
|
* ``django.contrib.gis`` dropped support for GEOS 3.1 and GDAL 1.6.
|
2014-03-27 21:53:04 +00:00
|
|
|
|
2014-03-21 10:19:19 +00:00
|
|
|
.. _deprecated-features-1.8:
|
|
|
|
|
|
|
|
Features deprecated in 1.8
|
|
|
|
==========================
|
|
|
|
|
2014-03-27 20:24:19 +00:00
|
|
|
Loading ``cycle`` and ``firstof`` template tags from ``future`` library
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
Django 1.6 introduced ``{% load cycle from future %}`` and
|
|
|
|
``{% load firstof from future %}`` syntax for forward compatibility of the
|
|
|
|
:ttag:`cycle` and :ttag:`firstof` template tags. This syntax is now deprecated
|
|
|
|
and will be removed in Django 2.0. You can simply remove the
|
|
|
|
``{% load ... from future %}`` tags.
|