diff --git a/django/templatetags/future.py b/django/templatetags/future.py
index 7203f394bf..c8127ac102 100644
--- a/django/templatetags/future.py
+++ b/django/templatetags/future.py
@@ -1,3 +1,5 @@
+import warnings
+
from django.template import Library
from django.template import defaulttags
@@ -6,13 +8,19 @@ register = Library()
@register.tag
def ssi(parser, token):
- # Used for deprecation path during 1.3/1.4, will be removed in 2.0
+ warnings.warn(
+ "Loading the `ssi` tag from the `future` library is deprecated and "
+ "will be removed in Django 1.9. Use the default `ssi` tag instead.",
+ PendingDeprecationWarning)
return defaulttags.ssi(parser, token)
@register.tag
def url(parser, token):
- # Used for deprecation path during 1.3/1.4, will be removed in 2.0
+ warnings.warn(
+ "Loading the `url` tag from the `future` library is deprecated and "
+ "will be removed in Django 1.9. Use the default `url` tag instead.",
+ PendingDeprecationWarning)
return defaulttags.url(parser, token)
diff --git a/docs/internals/deprecation.txt b/docs/internals/deprecation.txt
index 4b79e4696d..057c6dd3fe 100644
--- a/docs/internals/deprecation.txt
+++ b/docs/internals/deprecation.txt
@@ -12,9 +12,6 @@ about each item can often be found in the release notes of two versions prior.
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).
-
.. _deprecation-removed-in-1.9:
1.9
@@ -119,6 +116,9 @@ details on these changes.
* ``django.utils.module_loading.import_by_path`` will be removed in favor of
``django.utils.module_loading.import_string``.
+* ``ssi`` and ``url`` template tags will be removed from the ``future`` template
+ tag library (used during the 1.3/1.4 deprecation period).
+
.. _deprecation-removed-in-1.8:
1.8
diff --git a/docs/intro/tutorial03.txt b/docs/intro/tutorial03.txt
index 9754808897..5b2bee5fe7 100644
--- a/docs/intro/tutorial03.txt
+++ b/docs/intro/tutorial03.txt
@@ -548,17 +548,6 @@ defined in your url configurations by using the ``{% url %}`` template tag:
{{ question.question_text }}
-.. note::
-
- If ``{% url 'detail' question.id %}`` (with quotes) doesn't work, but
- ``{% url detail question.id %}`` (without quotes) does, that means you're
- using a version of Django < 1.5. In this case, add the following
- declaration at the top of your template:
-
- .. code-block:: html+django
-
- {% load url from future %}
-
The way this works is by looking up the URL definition as specified in the
``polls.urls`` module. You can see exactly where the URL name of 'detail' is
defined below::
diff --git a/docs/releases/1.7.txt b/docs/releases/1.7.txt
index 8e9ebe72a1..cd9a9dd225 100644
--- a/docs/releases/1.7.txt
+++ b/docs/releases/1.7.txt
@@ -1337,3 +1337,12 @@ The functionality required by ``check_field()`` is the same as that provided
by ``validate_field()``, but the output format is different. Third-party database
backends needing this functionality should modify their backends to provide an
implementation of ``check_field()``.
+
+Loading ``ssi`` and ``url`` template tags from ``future`` library
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Django 1.3 introduced ``{% load ssi from future %}`` and
+``{% load url from future %}`` syntax for forward compatibility of the
+:ttag:`ssi` and :ttag:`url` template tags. This syntax is now deprecated and
+will be removed in Django 1.9. You can simply remove the
+``{% load ... from future %}`` tags.
diff --git a/tests/template_tests/tests.py b/tests/template_tests/tests.py
index f10d9ea889..5263040212 100644
--- a/tests/template_tests/tests.py
+++ b/tests/template_tests/tests.py
@@ -612,8 +612,10 @@ class TemplateTests(TestCase):
try:
try:
with warnings.catch_warnings():
- # Ignore pending deprecations of the old syntax of the 'cycle' and 'firstof' tags.
+ # Ignore deprecations of the old syntax of the 'cycle' and 'firstof' tags.
warnings.filterwarnings("ignore", category=DeprecationWarning, module='django.template.base')
+ # Ignore pending deprecations of loading 'ssi' and 'url' tags from future.
+ warnings.filterwarnings("ignore", category=PendingDeprecationWarning, module='django.templatetags.future')
test_template = loader.get_template(name)
except ShouldNotExecuteException:
failures.append("Template test (Cached='%s', TEMPLATE_STRING_IF_INVALID='%s', TEMPLATE_DEBUG=%s): %s -- FAILED. Template loading invoked method that shouldn't have been invoked." % (is_cached, invalid_str, template_debug, name))