123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256 |
- ============================================
- Django 2.2 release notes - UNDER DEVELOPMENT
- ============================================
- *Expected April 2019*
- Welcome to Django 2.2!
- These release notes cover the :ref:`new features <whats-new-2.2>`, as well as
- some :ref:`backwards incompatible changes <backwards-incompatible-2.2>` you'll
- want to be aware of when upgrading from Django 2.1 or earlier. We've
- :ref:`begun the deprecation process for some features
- <deprecated-features-2.2>`.
- See the :doc:`/howto/upgrade-version` guide if you're updating an existing
- project.
- Django 2.2 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.11, will end in April 2020.
- Python compatibility
- ====================
- Django 2.2 supports Python 3.5, 3.6, and 3.7. We **highly recommend** and only
- officially support the latest release of each series.
- .. _whats-new-2.2:
- What's new in Django 2.2
- ========================
- Check Constraints
- -----------------
- The new :class:`~django.db.models.CheckConstraint` class enables adding custom
- database constraints. Constraints are added to models using the
- :attr:`Meta.constraints <django.db.models.Options.constraints>` option.
- Minor features
- --------------
- :mod:`django.contrib.admin`
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~
- * ...
- :mod:`django.contrib.admindocs`
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- * ...
- :mod:`django.contrib.auth`
- ~~~~~~~~~~~~~~~~~~~~~~~~~~
- * ...
- :mod:`django.contrib.contenttypes`
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- * ...
- :mod:`django.contrib.gis`
- ~~~~~~~~~~~~~~~~~~~~~~~~~
- * Added Oracle support for the
- :class:`~django.contrib.gis.db.models.functions.Envelope` function.
- * Added SpatiaLite support for the :lookup:`coveredby` and :lookup:`covers`
- lookups.
- :mod:`django.contrib.messages`
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- * ...
- :mod:`django.contrib.postgres`
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- * The new ``ordering`` argument for
- :class:`~django.contrib.postgres.aggregates.ArrayAgg` and
- :class:`~django.contrib.postgres.aggregates.StringAgg` determines the
- ordering of the aggregated elements.
- :mod:`django.contrib.redirects`
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- * ...
- :mod:`django.contrib.sessions`
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- * ...
- :mod:`django.contrib.sitemaps`
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- * ...
- :mod:`django.contrib.sites`
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~
- * ...
- :mod:`django.contrib.staticfiles`
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- * Added path matching to the :option:`collectstatic --ignore` option so that
- patterns like ``/vendor/*.js`` can be used.
- :mod:`django.contrib.syndication`
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- * ...
- Cache
- ~~~~~
- * ...
- CSRF
- ~~~~
- * ...
- Database backends
- ~~~~~~~~~~~~~~~~~
- * ...
- Email
- ~~~~~
- * ...
- File Storage
- ~~~~~~~~~~~~
- * ...
- File Uploads
- ~~~~~~~~~~~~
- * ...
- Forms
- ~~~~~
- * ...
- Generic Views
- ~~~~~~~~~~~~~
- * ...
- Internationalization
- ~~~~~~~~~~~~~~~~~~~~
- * ...
- Management Commands
- ~~~~~~~~~~~~~~~~~~~
- * ...
- Migrations
- ~~~~~~~~~~
- * ...
- Models
- ~~~~~~
- * Added support for PostgreSQL operator classes (:attr:`.Index.opclasses`).
- * Added many :ref:`math database functions <math-functions>`.
- Requests and Responses
- ~~~~~~~~~~~~~~~~~~~~~~
- * ...
- Serialization
- ~~~~~~~~~~~~~
- * You can now deserialize data using natural keys containing :ref:`forward
- references <natural-keys-and-forward-references>` by passing
- ``handle_forward_references=True`` to ``serializers.deserialize()``.
- Additionally, :djadmin:`loaddata` handles forward references automatically.
- Signals
- ~~~~~~~
- * ...
- Templates
- ~~~~~~~~~
- * ...
- Tests
- ~~~~~
- * The new :meth:`.SimpleTestCase.assertURLEqual` assertion checks for a given
- URL, ignoring the ordering of the query string.
- :meth:`~.SimpleTestCase.assertRedirects` uses the new assertion.
- URLs
- ~~~~
- * ...
- Validators
- ~~~~~~~~~~
- * ...
- .. _backwards-incompatible-2.2:
- Backwards incompatible changes in 2.2
- =====================================
- Database backend API
- --------------------
- * Third-party database backends must implement support for table check
- constraints or set ``DatabaseFeatures.supports_table_check_constraints`` to
- ``False``.
- :mod:`django.contrib.gis`
- -------------------------
- * Support for GDAL 1.9 and 1.10 is dropped.
- Miscellaneous
- -------------
- * On SQLite, ``PositiveIntegerField`` and ``PositiveSmallIntegerField`` now
- include a check constraint to prevent negative values in the database. If you
- have existing invalid data and run a migration that recreates a table, you'll
- see ``CHECK constraint failed``.
- * For consistency with WSGI servers, the test client now sets the
- ``Content-Length`` header to a string rather than an integer.
- .. _deprecated-features-2.2:
- Features deprecated in 2.2
- ==========================
- Miscellaneous
- -------------
- * ``django.utils.timezone.FixedOffset`` is deprecated in favor of
- :class:`datetime.timezone`.
|