2009-07-21 09:51:40 +08:00
|
|
|
===========================
|
|
|
|
Django Deprecation Timeline
|
|
|
|
===========================
|
|
|
|
|
|
|
|
This document outlines when various pieces of Django will be removed, following
|
2011-07-19 21:16:09 +08:00
|
|
|
their deprecation, as per the :ref:`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``.
|
|
|
|
|
2011-09-10 08:47:00 +08:00
|
|
|
|
2011-07-19 21:16:09 +08:00
|
|
|
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 :setting:`MEDIA_URL` or :setting:`STATIC_URL` settings are
|
|
|
|
required to end with a trailing slash to ensure there is a consistent
|
|
|
|
way to combine paths in templates.
|
|
|
|
|
2011-09-10 11:26:13 +08:00
|
|
|
* ``django.db.models.fields.URLField.verify_exists`` was deprecated in 1.4
|
|
|
|
due to intractable security and performance issues. The argument will be
|
|
|
|
removed in 1.5.
|
|
|
|
|
2011-07-19 21:16:09 +08:00
|
|
|
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.
|
|
|
|
|
|
|
|
* The :doc:`form wizard </ref/contrib/formtools/form-wizard>` has been
|
|
|
|
refactored to use class based views with pluggable backends in 1.4.
|
|
|
|
The previous implementation will be deprecated.
|
|
|
|
|
|
|
|
* Legacy ways of calling
|
|
|
|
:func:`~django.views.decorators.cache.cache_page` will be removed.
|
|
|
|
|
|
|
|
* The backward-compatibility shim to automatically add a debug-false
|
|
|
|
filter to the ``'mail_admins'`` logging handler will be removed. The
|
|
|
|
:setting:`LOGGING` setting should include this filter explicitly if
|
|
|
|
it is desired.
|
|
|
|
|
|
|
|
* The template tag
|
|
|
|
:func:`django.contrib.admin.templatetags.adminmedia.admin_media_prefix`
|
|
|
|
was deprecated since Django 1.4 and will be removed in favor of the
|
|
|
|
generic static files handling.
|
|
|
|
|
|
|
|
* The builin truncation functions
|
|
|
|
:func:`django.utils.text.truncate_words` and
|
|
|
|
:func:`django.utils.text.truncate_html_words`
|
|
|
|
were deprecated since Django 1.4 and will be removed in favor
|
|
|
|
of the ``django.utils.text.Truncator`` class.
|
|
|
|
|
2011-09-11 02:04:27 +08:00
|
|
|
* The :class:`~django.contrib.gis.geoip.GeoIP` class was moved to
|
|
|
|
:mod:`django.contrib.gis.geoip` in 1.4 -- the shortcut in
|
|
|
|
:mod:`django.contrib.gis.utils` will be removed.
|
|
|
|
|
2011-09-12 06:36:16 +08:00
|
|
|
* In 1.4, functions :func:`~django.conf.urls.include`, :func:`~django.conf.urls.patterns`
|
|
|
|
and :func:`~django.conf.urls.url` plus :data:`~django.conf.urls.handler404`,
|
|
|
|
:data:`~django.conf.urls.handler500` were moved to :mod:`django.conf.urls`
|
|
|
|
from their previous location ``django.conf.urls.defaults``. This module
|
|
|
|
was deprecated at the same time and will be removed in this Django release.
|
|
|
|
|
2011-07-19 21:16:09 +08:00
|
|
|
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.
|