mirror of
				https://github.com/django/django.git
				synced 2025-10-23 05:39:10 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			236 lines
		
	
	
		
			9.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			236 lines
		
	
	
		
			9.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| ===========================
 | |
| Django Deprecation Timeline
 | |
| ===========================
 | |
| 
 | |
| This document outlines when various pieces of Django will be removed or altered
 | |
| in a backward incompatible way, following their deprecation, as per the
 | |
| :ref:`deprecation policy <internal-release-deprecation-policy>`. More details
 | |
| about each item can often be found in the release notes of two versions prior.
 | |
| 
 | |
| 1.7
 | |
| ---
 | |
| 
 | |
| See the :doc:`Django 1.5 release notes</releases/1.5>` for more details on
 | |
| these changes.
 | |
| 
 | |
| * The module ``django.utils.simplejson`` will be removed. The standard library
 | |
|   provides :mod:`json` which should be used instead.
 | |
| 
 | |
| * The function ``django.utils.itercompat.product`` will be removed. The Python
 | |
|   builtin version should be used instead.
 | |
| 
 | |
| * Auto-correction of INSTALLED_APPS and TEMPLATE_DIRS settings when they are
 | |
|   specified as a plain string instead of a tuple will be removed and raise an
 | |
|   exception.
 | |
| 
 | |
| * The ``mimetype`` argument to the ``__init__`` methods of
 | |
|   :class:`~django.http.HttpResponse`,
 | |
|   :class:`~django.template.response.SimpleTemplateResponse`, and
 | |
|   :class:`~django.template.response.TemplateResponse`, will be removed.
 | |
|   ``content_type`` should be used instead. This also applies to the
 | |
|   :func:`~django.shortcuts.render_to_response` shortcut and
 | |
|   the sitemap views, :func:`~django.contrib.sitemaps.views.index` and
 | |
|   :func:`~django.contrib.sitemaps.views.sitemap`.
 | |
| 
 | |
| * When :class:`~django.http.HttpResponse` is instantiated with an iterator,
 | |
|   or when :attr:`~django.http.HttpResponse.content` is set to an iterator,
 | |
|   that iterator will be immediately consumed.
 | |
| 
 | |
| * The ``AUTH_PROFILE_MODULE`` setting, and the ``get_profile()`` method on
 | |
|   the User model, will be removed.
 | |
| 
 | |
| * The ``cleanup`` management command will be removed. It's replaced by
 | |
|   ``clearsessions``.
 | |
| 
 | |
| * The ``daily_cleanup.py`` script will be removed.
 | |
| 
 | |
| * The ``depth`` keyword argument will be removed from
 | |
|   :meth:`~django.db.models.query.QuerySet.select_related`.
 | |
| 
 | |
| * The undocumented ``get_warnings_state()``/``restore_warnings_state()``
 | |
|   functions from :mod:`django.test.utils` and the ``save_warnings_state()``/
 | |
|   ``restore_warnings_state()``
 | |
|   :ref:`django.test.*TestCase <django-testcase-subclasses>` methods are
 | |
|   deprecated. Use the :class:`warnings.catch_warnings` context manager
 | |
|   available starting with Python 2.6 instead.
 | |
| 
 | |
| * The undocumented ``check_for_test_cookie`` method in
 | |
|   :class:`~django.contrib.auth.forms.AuthenticationForm` will be removed
 | |
|   following an accelerated deprecation. Users subclassing this form should
 | |
|   remove calls to this method, and instead ensure that their auth related views
 | |
|   are CSRF protected, which ensures that cookies are enabled.
 | |
| 
 | |
| * The version of :func:`django.contrib.auth.views.password_reset_confirm` that
 | |
|   supports base36 encoded user IDs
 | |
|   (``django.contrib.auth.views.password_reset_confirm_uidb36``) will be
 | |
|   removed. If your site has been running Django 1.6 for more than
 | |
|   :setting:`PASSWORD_RESET_TIMEOUT_DAYS`, this change will have no effect. If
 | |
|   not, then any password reset links generated before you upgrade to Django 1.7
 | |
|   won't work after the upgrade.
 | |
| 
 | |
| 1.8
 | |
| ---
 | |
| 
 | |
| * ``django.contrib.comments`` will be removed.
 | |
| 
 | |
| * The following transaction management APIs will be removed:
 | |
| 
 | |
|   - ``TransactionMiddleware``,
 | |
|   - the decorators and context managers ``autocommit``, ``commit_on_success``,
 | |
|     and ``commit_manually``, defined in ``django.db.transaction``,
 | |
|   - the functions ``commit_unless_managed`` and ``rollback_unless_managed``,
 | |
|     also defined in ``django.db.transaction``,
 | |
|   - the ``TRANSACTIONS_MANAGED`` setting.
 | |
| 
 | |
|   Upgrade paths are described in the :ref:`transaction management docs
 | |
|   <transactions-upgrading-from-1.5>`.
 | |
| 
 | |
| * The :ttag:`cycle` and :ttag:`firstof` template tags will auto-escape their
 | |
|   arguments. In 1.6 and 1.7, this behavior is provided by the version of these
 | |
|   tags in the ``future`` template tag library.
 | |
| 
 | |
| * The ``SEND_BROKEN_LINK_EMAILS`` setting will be removed. Add the
 | |
|   :class:`django.middleware.common.BrokenLinkEmailsMiddleware` middleware to
 | |
|   your :setting:`MIDDLEWARE_CLASSES` setting instead.
 | |
| 
 | |
| * ``Model._meta.module_name`` was renamed to ``model_name``.
 | |
| 
 | |
| * Remove the backward compatible shims introduced to rename ``get_query_set``
 | |
|   and similar queryset methods. This affects the following classes:
 | |
|   ``BaseModelAdmin``, ``ChangeList``, ``BaseCommentNode``,
 | |
|   ``GenericForeignKey``, ``Manager``, ``SingleRelatedObjectDescriptor`` and
 | |
|   ``ReverseSingleRelatedObjectDescriptor``.
 | |
| 
 | |
| * Remove the backward compatible shims introduced to rename the attributes
 | |
|   ``ChangeList.root_query_set`` and ``ChangeList.query_set``.
 | |
| 
 | |
| * ``django.views.defaults.shortcut`` will be removed, as part of the
 | |
|   goal of removing all ``django.contrib`` references from the core
 | |
|   Django codebase. Instead use
 | |
|   ``django.contrib.contenttypes.views.shortcut``. ``django.conf.urls.shortcut``
 | |
|   will also be removed.
 | |
| 
 | |
| * Support for the Python Imaging Library (PIL) module will be removed, as it
 | |
|   no longer appears to be actively maintained & does not work on Python 3.
 | |
|   You are advised to install `Pillow`_, which should be used instead.
 | |
| 
 | |
|   .. _`Pillow`: https://pypi.python.org/pypi/Pillow
 | |
| 
 | |
| * The following private APIs will be removed:
 | |
| 
 | |
|   - ``django.db.backend``
 | |
|   - ``django.db.close_connection()``
 | |
|   - ``django.db.backends.creation.BaseDatabaseCreation.set_autocommit()``
 | |
|   - ``django.db.transaction.is_managed()``
 | |
|   - ``django.db.transaction.managed()``
 | |
| 
 | |
| * ``django.forms.widgets.RadioInput`` will be removed in favor of
 | |
|   ``django.forms.widgets.RadioChoiceInput``.
 | |
| 
 | |
| * The module ``django.test.simple`` and the class
 | |
|   ``django.test.simple.DjangoTestSuiteRunner`` will be removed. Instead use
 | |
|   ``django.test.runner.DiscoverRunner``.
 | |
| 
 | |
| * The module ``django.test._doctest`` will be removed. Instead use the doctest
 | |
|   module from the Python standard library.
 | |
| 
 | |
| * The ``CACHE_MIDDLEWARE_ANONYMOUS_ONLY`` setting will be removed.
 | |
| 
 | |
| * Usage of the hard-coded *Hold down "Control", or "Command" on a Mac, to select
 | |
|   more than one.* string to override or append to user-provided ``help_text`` in
 | |
|   forms for ManyToMany model fields will not be performed by Django anymore
 | |
|   either at the model or forms layer.
 | |
| 
 | |
| * The ``Model._meta.get_(add|change|delete)_permission`` methods will
 | |
|   be removed.
 | |
| 
 | |
| * The session key ``django_language`` will no longer be read for backwards
 | |
|   compatibility.
 | |
| 
 | |
| * Geographic Sitemaps will be removed
 | |
|   (``django.contrib.gis.sitemaps.views.index`` and
 | |
|   ``django.contrib.gis.sitemaps.views.sitemap``).
 | |
| 
 | |
| 1.9
 | |
| ---
 | |
| 
 | |
| * ``django.utils.dictconfig`` will be removed.
 | |
| 
 | |
| * ``django.utils.importlib`` will be removed.
 | |
| 
 | |
| * ``django.utils.tzinfo`` will be removed.
 | |
| 
 | |
| * ``django.utils.unittest`` will be removed.
 | |
| 
 | |
| * The ``syncdb`` command will be removed.
 | |
| 
 | |
| * ``django.db.models.signals.pre_syncdb`` and
 | |
|   ``django.db.models.signals.post_syncdb`` will be removed, and
 | |
|   ``django.db.models.signals.pre_migrate`` and
 | |
|   ``django.db.models.signals.post_migrate`` will lose their
 | |
|   ``create_models`` and ``created_models`` arguments.
 | |
| 
 | |
| * ``allow_syncdb`` on database routers will no longer automatically become
 | |
|   ``allow_migrate``.
 | |
| 
 | |
| * If models are organized in a package, Django will no longer look for
 | |
|   :ref:`initial SQL data<initial-sql>` in ``myapp/models/sql/``. Move your
 | |
|   custom SQL files to ``myapp/sql/``.
 | |
| 
 | |
| * The model and form ``IPAddressField`` will be removed.
 | |
| 
 | |
| * FastCGI support via the ``runfcgi`` management command will be
 | |
|   removed. Please deploy your project using WSGI.
 | |
| 
 | |
| * ``django.utils.datastructures.SortedDict`` will be removed. Use
 | |
|   :class:`collections.OrderedDict` from the Python standard library instead.
 | |
| 
 | |
| * ``ModelAdmin.declared_fieldsets`` will be removed.
 | |
| 
 | |
| * Instances of ``util.py`` in the Django codebase have been renamed to
 | |
|   ``utils.py`` in an effort to unify all util and utils references.
 | |
|   The modules that provided backwards compatibility will be removed:
 | |
| 
 | |
|   * ``django.contrib.admin.util``
 | |
|   * ``django.contrib.gis.db.backends.util``
 | |
|   * ``django.db.backends.util``
 | |
|   * ``django.forms.util``
 | |
| 
 | |
| * ``ModelAdmin.get_formsets`` will be removed.
 | |
| 
 | |
| * Remove the backward compatible shims introduced to rename the
 | |
|   ``BaseMemcachedCache._get_memcache_timeout()`` method to
 | |
|   ``get_backend_timeout()``.
 | |
| 
 | |
| * The ``--natural`` and ``-n`` options for :djadmin:`dumpdata` will be removed.
 | |
|   Use :djadminopt:`--natural-foreign` instead.
 | |
| 
 | |
| * The ``use_natural_keys`` argument for ``serializers.serialize()`` will be
 | |
|   removed. Use ``use_natural_foreign_keys`` instead.
 | |
| 
 | |
| * ``django.forms.get_declared_fields`` will be removed.
 | |
| 
 | |
| * The ``WSGIRequest.REQUEST`` property will be removed.
 | |
| 
 | |
| * The class ``django.utils.datastructures.MergeDict`` will be removed.
 | |
| 
 | |
| * The ``zh-cn`` and ``zh-tw`` language codes will be removed and have been
 | |
|   replaced by the ``zh-hans`` and ``zh-hant`` language code respectively.
 | |
| 
 | |
| * The internal ``django.utils.functional.memoize`` will be removed.
 | |
| 
 | |
| * ``django.core.cache.get_cache`` will be removed. Add suitable entries
 | |
|   to :setting:`CACHES` and use :data:`django.core.cache.caches` instead.
 | |
| 
 | |
| * ``django.db.models.loading`` will be removed. Use the new application
 | |
|   loading APIs instead. Several undocumented methods of the ``AppCache`` class
 | |
|   will also be removed.
 | |
| 
 | |
| * Passing callable arguments to querysets will no longer be possible.
 | |
| 
 | |
| 2.0
 | |
| ---
 | |
| 
 | |
| * ``ssi`` and ``url`` template tags will be removed from the ``future`` template
 | |
|   tag library (used during the 1.3/1.4 deprecation period).
 |