123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289 |
- =============================================
- Django 1.11 release notes - UNDER DEVELOPMENT
- =============================================
- Welcome to Django 1.11!
- These release notes cover the :ref:`new features <whats-new-1.11>`, as well as
- some :ref:`backwards incompatible changes <backwards-incompatible-1.11>` you'll
- want to be aware of when upgrading from Django 1.10 or older versions. We've
- :ref:`begun the deprecation process for some features
- <deprecated-features-1.11>`.
- See the :doc:`/howto/upgrade-version` guide if you're updating an existing
- project.
- Django 1.11 is designated as a :term:`long-term support release`. It will
- receive security updates for at least three years after its release. Support
- for the previous LTS, Django 1.8, will end 6 months after the release date of
- Django 1.11.
- Python compatibility
- ====================
- Like Django 1.10, Django 1.11 requires Python 2.7, 3.4, or 3.5. We **highly
- recommend** and only officially support the latest release of each series.
- The Django 1.11.x series is the last to support Python 2. The next major
- release, Django 2.0, will only support Python 3.5+.
- Deprecating warnings are no longer loud by default
- ==================================================
- Unlike older versions of Django, Django's own deprecation warnings are no
- longer displayed by default. This is consistent with Python's default behavior.
- This change allows third-party apps to support both Django 1.11 LTS and Django
- 1.8 LTS without having to add code to avoid deprecation warnings.
- Following the release of Django 2.0, we suggest that third-party app authors
- drop support for all versions of Django prior to 1.11. At that time, you should
- be able run your package's tests using ``python -Wd`` so that deprecation
- warnings do appear. After making the deprecation warning fixes, your app should
- be compatible with Django 2.0.
- .. _whats-new-1.11:
- What's new in Django 1.11
- =========================
- Minor features
- --------------
- :mod:`django.contrib.admin`
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~
- * :attr:`.ModelAdmin.date_hierarchy` can now reference fields across relations.
- :mod:`django.contrib.admindocs`
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- * ...
- :mod:`django.contrib.auth`
- ~~~~~~~~~~~~~~~~~~~~~~~~~~
- * The default iteration count for the PBKDF2 password hasher is increased by
- 20%.
- :mod:`django.contrib.contenttypes`
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- * ...
- :mod:`django.contrib.gis`
- ~~~~~~~~~~~~~~~~~~~~~~~~~
- * ...
- :mod:`django.contrib.messages`
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- * ...
- :mod:`django.contrib.postgres`
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- * The new ``distinct`` argument for
- :class:`~django.contrib.postgres.aggregates.StringAgg` determines if
- concatenated values will be distinct.
- :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
- ~~~~~
- * ...
- CSRF
- ~~~~
- * ...
- Database backends
- ~~~~~~~~~~~~~~~~~
- * ...
- Email
- ~~~~~
- * Added the :setting:`EMAIL_USE_LOCALTIME` setting to allow sending SMTP date
- headers in the local time zone rather than in UTC.
- File Storage
- ~~~~~~~~~~~~
- * To make it wrappable by :class:`io.TextIOWrapper`,
- :class:`~django.core.files.File` now has the ``readable()``, ``writable()``,
- and ``seekable()`` methods.
- File Uploads
- ~~~~~~~~~~~~
- * ...
- Forms
- ~~~~~
- * The new :attr:`CharField.empty_value <django.forms.CharField.empty_value>`
- attribute allows specifying the Python value to use to represent "empty".
- Generic Views
- ~~~~~~~~~~~~~
- * ...
- Internationalization
- ~~~~~~~~~~~~~~~~~~~~
- * ...
- Management Commands
- ~~~~~~~~~~~~~~~~~~~
- * The new :option:`loaddata --exclude` option allows excluding models and apps
- while loading data from fixtures.
- Migrations
- ~~~~~~~~~~
- * ...
- Models
- ~~~~~~
- * Added support for callable values in the ``defaults`` argument of
- :meth:`QuerySet.update_or_create()
- <django.db.models.query.QuerySet.update_or_create>` and
- :meth:`~django.db.models.query.QuerySet.get_or_create`.
- Requests and Responses
- ~~~~~~~~~~~~~~~~~~~~~~
- * Added :meth:`QueryDict.fromkeys() <django.http.QueryDict.fromkeys>`.
- Serialization
- ~~~~~~~~~~~~~
- * The new ``django.core.serializers.base.Serializer.stream_class`` attribute
- allows subclasses to customize the default stream.
- Signals
- ~~~~~~~
- * ...
- Templates
- ~~~~~~~~~
- * :meth:`~django.utils.safestring.mark_safe` can now be used as a decorator.
- Tests
- ~~~~~
- * ...
- URLs
- ~~~~
- * ...
- Validators
- ~~~~~~~~~~
- * ...
- .. _backwards-incompatible-1.11:
- Backwards incompatible changes in 1.11
- ======================================
- :mod:`django.contrib.gis`
- -------------------------
- * To simplify the codebase and because it's easier to install than when
- ``contrib.gis`` was first released, :ref:`gdalbuild` is now a required
- dependency for GeoDjango. In older versions, it's only required for SQLite.
- Database backend API
- --------------------
- * ...
- Dropped support for PostgreSQL 9.2 and PostGIS 2.0
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Upstream support for PostgreSQL 9.2 ends in September 2017. As a consequence,
- Django 1.11 sets PostgreSQL 9.3 as the minimum version it officially supports.
- Support for PostGIS 2.0 is also removed as PostgreSQL 9.2 is the last version
- to support it.
- Miscellaneous
- -------------
- * If no items in the feed have a ``pubdate`` or ``updateddate`` attribute,
- :meth:`SyndicationFeed.latest_post_date()
- <django.utils.feedgenerator.SyndicationFeed.latest_post_date>` now returns
- the current UTC date/time, instead of a datetime without any timezone
- information.
- * Support for SpatiaLite < 4.0 is dropped.
- * CSRF failures are logged to the ``django.security.csrf ``` logger instead of
- ``django.request``.
- * :setting:`ALLOWED_HOSTS` validation is no longer disabled when running tests.
- If your application includes tests with custom host names, you must include
- those host names in :setting:`ALLOWED_HOSTS`. See
- :ref:`topics-testing-advanced-multiple-hosts`.
- * Using a foreign key's id (e.g. ``'field_id'``) in ``ModelAdmin.list_display``
- displays the related object's ID. Remove the ``_id`` suffix if you want the
- old behavior of the string representation of the object.
- * In model forms, :class:`~django.db.models.CharField` with ``null=True`` now
- saves ``NULL`` for blank values instead of empty strings.
- * On Oracle, :meth:`Model.validate_unique()
- <django.db.models.Model.validate_unique>` no longer checks empty strings for
- uniqueness as the database interprets the value as ``NULL``.
- .. _deprecated-features-1.11:
- Features deprecated in 1.11
- ===========================
- Miscellaneous
- -------------
- * ...
|