123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349 |
- ============================================
- Django 5.0 release notes - UNDER DEVELOPMENT
- ============================================
- *Expected December 2023*
- Welcome to Django 5.0!
- These release notes cover the :ref:`new features <whats-new-5.0>`, as well as
- some :ref:`backwards incompatible changes <backwards-incompatible-5.0>` you'll
- want to be aware of when upgrading from Django 4.2 or earlier. We've
- :ref:`begun the deprecation process for some features
- <deprecated-features-5.0>`.
- See the :doc:`/howto/upgrade-version` guide if you're updating an existing
- project.
- Python compatibility
- ====================
- Django 5.0 supports Python 3.10, 3.11, and 3.12. We **highly recommend** and
- only officially support the latest release of each series.
- Third-party library support for older version of Django
- =======================================================
- Following the release of Django 5.0, we suggest that third-party app authors
- drop support for all versions of Django prior to 4.2. At that time, you should
- be able to run your package's tests using ``python -Wd`` so that deprecation
- warnings appear. After making the deprecation warning fixes, your app should be
- compatible with Django 5.0.
- .. _whats-new-5.0:
- What's new in Django 5.0
- ========================
- Minor features
- --------------
- :mod:`django.contrib.admin`
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~
- * ...
- :mod:`django.contrib.admindocs`
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- * ...
- :mod:`django.contrib.auth`
- ~~~~~~~~~~~~~~~~~~~~~~~~~~
- * ...
- :mod:`django.contrib.contenttypes`
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- * ...
- :mod:`django.contrib.gis`
- ~~~~~~~~~~~~~~~~~~~~~~~~~
- * ...
- :mod:`django.contrib.messages`
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- * ...
- :mod:`django.contrib.postgres`
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- * ...
- :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
- ~~~~
- * ...
- Decorators
- ~~~~~~~~~~
- * ...
- Email
- ~~~~~
- * ...
- Error Reporting
- ~~~~~~~~~~~~~~~
- * ...
- File Storage
- ~~~~~~~~~~~~
- * ...
- File Uploads
- ~~~~~~~~~~~~
- * ...
- Forms
- ~~~~~
- * ...
- Generic Views
- ~~~~~~~~~~~~~
- * ...
- Internationalization
- ~~~~~~~~~~~~~~~~~~~~
- * ...
- Logging
- ~~~~~~~
- * ...
- Management Commands
- ~~~~~~~~~~~~~~~~~~~
- * ...
- Migrations
- ~~~~~~~~~~
- * ...
- Models
- ~~~~~~
- * ...
- Requests and Responses
- ~~~~~~~~~~~~~~~~~~~~~~
- * ...
- Security
- ~~~~~~~~
- * ...
- Serialization
- ~~~~~~~~~~~~~
- * ...
- Signals
- ~~~~~~~
- * ...
- Templates
- ~~~~~~~~~
- * ...
- Tests
- ~~~~~
- * ...
- URLs
- ~~~~
- * ...
- Utilities
- ~~~~~~~~~
- * ...
- Validators
- ~~~~~~~~~~
- * ...
- .. _backwards-incompatible-5.0:
- Backwards incompatible changes in 5.0
- =====================================
- Database backend API
- --------------------
- This section describes changes that may be needed in third-party database
- backends.
- * ...
- Miscellaneous
- -------------
- * ...
- .. _deprecated-features-5.0:
- Features deprecated in 5.0
- ==========================
- Miscellaneous
- -------------
- * ...
- Features removed in 5.0
- =======================
- These features have reached the end of their deprecation cycle and are removed
- in Django 5.0.
- See :ref:`deprecated-features-4.0` for details on these changes, including how
- to remove usage of these features.
- * The ``SERIALIZE`` test setting is removed.
- * The undocumented ``django.utils.baseconv`` module is removed.
- * The undocumented ``django.utils.datetime_safe`` module is removed.
- * The default value of the ``USE_TZ`` setting is changed from ``False`` to
- ``True``.
- * The default sitemap protocol for sitemaps built outside the context of a
- request is changed from ``'http'`` to ``'https'``.
- * The ``extra_tests`` argument for ``DiscoverRunner.build_suite()`` and
- ``DiscoverRunner.run_tests()`` is removed.
- * The ``django.contrib.postgres.aggregates.ArrayAgg``, ``JSONBAgg``, and
- ``StringAgg`` aggregates no longer return ``[]``, ``[]``, and ``''``,
- respectively, when there are no rows.
- * The ``USE_L10N`` setting is removed.
- * The ``USE_DEPRECATED_PYTZ`` transitional setting is removed.
- * Support for ``pytz`` timezones is removed.
- * The ``is_dst`` argument is removed from:
- * ``QuerySet.datetimes()``
- * ``django.utils.timezone.make_aware()``
- * ``django.db.models.functions.Trunc()``
- * ``django.db.models.functions.TruncSecond()``
- * ``django.db.models.functions.TruncMinute()``
- * ``django.db.models.functions.TruncHour()``
- * ``django.db.models.functions.TruncDay()``
- * ``django.db.models.functions.TruncWeek()``
- * ``django.db.models.functions.TruncMonth()``
- * ``django.db.models.functions.TruncQuarter()``
- * ``django.db.models.functions.TruncYear()``
- * The ``django.contrib.gis.admin.GeoModelAdmin`` and ``OSMGeoAdmin`` classes
- are removed.
- * The undocumented ``BaseForm._html_output()`` method is removed.
- * The ability to return a ``str``, rather than a ``SafeString``, when rendering
- an ``ErrorDict`` and ``ErrorList`` is removed.
- See :ref:`deprecated-features-4.1` for details on these changes, including how
- to remove usage of these features.
- * The ``SitemapIndexItem.__str__()`` method is removed.
- * The ``CSRF_COOKIE_MASKED`` transitional setting is removed.
- * The ``name`` argument of ``django.utils.functional.cached_property()`` is
- removed.
- * The ``opclasses`` argument of
- ``django.contrib.postgres.constraints.ExclusionConstraint`` is removed.
- * The undocumented ability to pass ``errors=None`` to
- ``SimpleTestCase.assertFormError()`` and ``assertFormsetError()`` is removed.
- * ``django.contrib.sessions.serializers.PickleSerializer`` is removed.
- * The usage of ``QuerySet.iterator()`` on a queryset that prefetches related
- objects without providing the ``chunk_size`` argument is no longer allowed.
- * Passing unsaved model instances to related filters is no longer allowed.
- * ``created=True`` is required in the signature of
- ``RemoteUserBackend.configure_user()`` subclasses.
- * Support for logging out via ``GET`` requests in the
- ``django.contrib.auth.views.LogoutView`` and
- ``django.contrib.auth.views.logout_then_login()`` is removed.
- * The ``django.utils.timezone.utc`` alias to ``datetime.timezone.utc`` is
- removed.
- * Passing a response object and a form/formset name to
- ``SimpleTestCase.assertFormError()`` and ``assertFormSetError()`` is no
- longer allowed.
- * The ``django.contrib.gis.admin.OpenLayersWidget`` is removed.
- + The ``django.contrib.auth.hashers.CryptPasswordHasher`` is removed.
- * The ``"django/forms/default.html"`` and
- ``"django/forms/formsets/default.html"`` templates are removed.
- * The default form and formset rendering style is changed to the div-based.
|