123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 |
- ===========================
- Django Deprecation Timeline
- ===========================
- This document outlines when various pieces of Django will be removed, following
- their deprecation, as per the :ref:`Django deprecation policy
- <internal-release-deprecation-policy>`
- * 1.3
- * ``AdminSite.root()``. This release will remove the old method for
- hooking up admin URLs. This has been deprecated since the 1.1
- release.
- * Authentication backends need to define the boolean attributes
- ``supports_object_permissions`` and ``supports_anonymous_user``.
- The old backend style is deprecated since the 1.2 release.
- * The :mod:`django.contrib.gis.db.backend` module, including the
- ``SpatialBackend`` interface, is deprecated since the 1.2 release.
- * 1.4
- * ``CsrfResponseMiddleware``. This has been deprecated since the 1.2
- release, in favor of the template tag method for inserting the CSRF
- token. ``CsrfMiddleware``, which combines ``CsrfResponseMiddleware``
- and ``CsrfViewMiddleware``, is also deprecated.
- * The old imports for CSRF functionality (``django.contrib.csrf.*``),
- which moved to core in 1.2, will be removed.
- * ``SMTPConnection``. The 1.2 release deprecated the ``SMTPConnection``
- class in favor of a generic E-mail backend API.
- * The many to many SQL generation functions on the database backends
- will be removed.
- * The ability to use the ``DATABASE_*`` family of top-level settings to
- define database connections will be removed.
- * The ability to use shorthand notation to specify a database backend
- (i.e., ``sqlite3`` instead of ``django.db.backends.sqlite3``) will be
- removed.
- * The ``get_db_prep_save``, ``get_db_prep_value`` and
- ``get_db_prep_lookup`` methods on Field were modified in 1.2
- to support multiple databases. In 1.4, the support functions
- that allow methods with the old prototype to continue
- working will be removed.
- * The ``Message`` model (in ``django.contrib.auth``), its related
- manager in the ``User`` model (``user.message_set``), and the
- associated methods (``user.message_set.create()`` and
- ``user.get_and_delete_messages()``), which have
- been deprecated since the 1.2 release, will be removed. The
- :doc:`messages framework </ref/contrib/messages>` should be used
- instead. The related ``messages`` variable returned by the
- auth context processor will also be removed. Note that this
- means that the admin application depends on the messages
- context processor.
- * Authentication backends need to support the ``obj`` parameter for
- permission checking. The ``supports_object_permissions`` variable
- is not checked any longer and can be removed.
- * Authentication backends need to support the ``AnonymousUser``
- being passed to all methods dealing with permissions.
- The ``supports_anonymous_user`` variable is not checked any
- longer and can be removed.
- * The ability to specify a callable template loader rather than a
- ``Loader`` class will be removed, as will the ``load_template_source``
- functions that are included with the built in template loaders for
- backwards compatibility. These have been deprecated since the 1.2
- release.
- * ``django.utils.translation.get_date_formats()`` and
- ``django.utils.translation.get_partial_date_formats()``. These
- functions are replaced by the new locale aware formatting; use
- ``django.utils.formats.get_format()`` to get the appropriate
- formats.
- * In ``django.forms.fields``: ``DEFAULT_DATE_INPUT_FORMATS``,
- ``DEFAULT_TIME_INPUT_FORMATS`` and
- ``DEFAULT_DATETIME_INPUT_FORMATS``. Use
- ``django.utils.formats.get_format()`` to get the appropriate
- formats.
- * The ability to use a function-based test runners will be removed,
- along with the ``django.test.simple.run_tests()`` test runner.
- * The ``views.feed()`` view and ``feeds.Feed`` class in
- ``django.contrib.syndication`` have been deprecated since the 1.2
- release. The class-based view ``views.Feed`` should be used instead.
- * ``django.core.context_processors.auth``. This release will
- remove the old method in favor of the new method in
- ``django.contrib.auth.context_processors.auth``. This has been
- deprecated since the 1.2 release.
- * The ``postgresql`` database backend has been deprecated in favor of
- the ``postgresql_psycopg2`` backend.
- * The ``no`` language code has been deprecated in favor of the ``nb``
- language code.
- * Authentication backends need to define the boolean attribute
- ``supports_inactive_user``.
- * ``django.db.models.fields.XMLField`` will be removed. This was
- deprecated as part of the 1.3 release. An accelerated deprecation
- schedule has been used because the field hasn't performed any role
- beyond that of a simple ``TextField`` since the removal of oldforms.
- All uses of ``XMLField`` can be replaced with ``TextField``.
- * 1.5
- * The ``mod_python`` request handler has been deprecated since the 1.3
- release. The ``mod_wsgi`` handler should be used instead.
- * The ``template`` attribute on :class:`~django.test.client.Response`
- objects returned by the :ref:`test client <test-client>` has been
- deprecated since the 1.3 release. The
- :attr:`~django.test.client.Response.templates` attribute should be
- used instead.
- * The features of the :class:`django.test.simple.DjangoTestRunner`
- (including fail-fast and Ctrl-C test termination) can now be provided
- by the unittest-native :class:`TextTestRunner`. The
- :class:`~django.test.simple.DjangoTestRunner` will be removed in
- favor of using the unittest-native class.
- * The undocumented function
- :func:`django.contrib.formtools.utils.security_hash`
- is deprecated, in favor of :func:`django.contrib.formtools.utils.form_hmac`
- * The function-based generic views have been deprecated in
- favor of their class-based cousins. The following modules
- will be removed:
- * :mod:`django.views.generic.create_update`
- * :mod:`django.views.generic.date_based`
- * :mod:`django.views.generic.list_detail`
- * :mod:`django.views.generic.simple`
- * The :class:`~django.core.servers.basehttp.AdminMediaHandler` has
- been deprecated in favor of the
- :class:`~django.contrib.staticfiles.handlers.StaticFilesHandler`.
- * The :ttag:`url` and :ttag:`ssi` template tags will be
- modified so that the first argument to each tag is a
- template variable, not an implied string. The new-style
- behavior is provided in the ``future`` template tag library.
- * The :djadmin:`reset` and :djadmin:`sqlreset` management commands
- are deprecated.
- * Authentication backends need to support a inactive user
- being passed to all methods dealing with permissions.
- The ``supports_inactive_user`` variable is not checked any
- longer and can be removed.
- * :meth:`~django.contrib.gis.geos.GEOSGeometry.transform` will raise
- a :class:`~django.contrib.gis.geos.GEOSException` when called
- on a geometry with no SRID value.
- * :class:`~django.http.CompatCookie` will be removed in favor of
- :class:`~django.http.SimpleCookie`.
- * :class:`django.core.context_processors.PermWrapper` and
- :class:`django.core.context_processors.PermLookupDict`
- will be moved to :class:`django.contrib.auth.context_processors.PermWrapper`
- and :class:`django.contrib.auth.context_processors.PermLookupDict`,
- respectively.
- * The ``MEDIA_URL`` or ``STATIC_URL`` settings are required to end
- with a trailing slash to ensure there is a consistent way to
- combine paths in templates.
- * 1.6
- * The compatibility modules ``django.utils.copycompat`` and
- ``django.utils.hashcompat`` as well as the functions
- ``django.utils.itercompat.all`` and ``django.utils.itercompat.any``
- have been deprecated since the 1.4 release. The native versions
- should be used instead.
- * The :func:`~django.views.decorators.csrf.csrf_response_exempt` and
- :func:`~django.views.decorators.csrf.csrf_view_exempt` decorators will
- be removed. Since 1.4 ``csrf_response_exempt`` has been a no-op (it
- returns the same function), and ``csrf_view_exempt`` has been a
- synonym for ``django.views.decorators.csrf.csrf_exempt``, which should
- be used to replace it.
- * The :class:`~django.core.cache.backends.memcached.CacheClass` backend
- was split into two in Django 1.3 in order to introduce support for
- PyLibMC. The historical :class:`~django.core.cache.backends.memcached.CacheClass`
- is now an alias for :class:`~django.core.cache.backends.memcached.MemcachedCache`.
- In Django 1.6, the historical alias will be removed.
- * The UK-prefixed objects of ``django.contrib.localflavor.uk`` will only
- be accessible through their new GB-prefixed names (GB is the correct
- ISO 3166 code for United Kingdom). They have been deprecated since the
- 1.4 release.
- * The :setting:`IGNORABLE_404_STARTS` and :setting:`IGNORABLE_404_ENDS`
- settings have been superseded by :setting:`IGNORABLE_404_URLS` in
- the 1.4 release. They will be removed.
- * 2.0
- * ``django.views.defaults.shortcut()``. This function has been moved
- to ``django.contrib.contenttypes.views.shortcut()`` as part of the
- goal of removing all ``django.contrib`` references from the core
- Django codebase. The old shortcut will be removed in the 2.0
- release.
|