\n\n'
>>> response.context['latest_question_list']
]>
diff --git a/docs/ref/templates/builtins.txt b/docs/ref/templates/builtins.txt
index 9509377a24..cd5476fd6f 100644
--- a/docs/ref/templates/builtins.txt
+++ b/docs/ref/templates/builtins.txt
@@ -1603,7 +1603,7 @@ Escapes a string's HTML. Specifically, it makes these replacements:
* ``<`` is converted to ``<``
* ``>`` is converted to ``>``
-* ``'`` (single quote) is converted to ``'``
+* ``'`` (single quote) is converted to ``'``
* ``"`` (double quote) is converted to ``"``
* ``&`` is converted to ``&``
diff --git a/docs/ref/templates/language.txt b/docs/ref/templates/language.txt
index 1287f012c2..33687fc49d 100644
--- a/docs/ref/templates/language.txt
+++ b/docs/ref/templates/language.txt
@@ -492,7 +492,7 @@ escaped:
* ``<`` is converted to ``<``
* ``>`` is converted to ``>``
-* ``'`` (single quote) is converted to ``'``
+* ``'`` (single quote) is converted to ``'``
* ``"`` (double quote) is converted to ``"``
* ``&`` is converted to ``&``
diff --git a/docs/ref/utils.txt b/docs/ref/utils.txt
index 5f03dc66e4..b36282048f 100644
--- a/docs/ref/utils.txt
+++ b/docs/ref/utils.txt
@@ -584,6 +584,11 @@ escaping HTML.
for use in HTML. The input is first coerced to a string and the output has
:func:`~django.utils.safestring.mark_safe` applied.
+ .. versionchanged:: 3.0
+
+ In older versions, ``'`` is converted to its decimal code ``'``
+ instead of the equivalent hex code ``'``.
+
.. function:: conditional_escape(text)
Similar to ``escape()``, except that it doesn't operate on pre-escaped
diff --git a/docs/releases/3.0.txt b/docs/releases/3.0.txt
index b279f9a451..2ee02206a1 100644
--- a/docs/releases/3.0.txt
+++ b/docs/releases/3.0.txt
@@ -348,6 +348,10 @@ Miscellaneous
the session and :func:`django.contrib.auth.logout` no longer preserves the
session's language after logout.
+* :func:`django.utils.html.escape` now uses :func:`html.escape` to escape HTML.
+ This converts ``'`` to ``'`` instead of the previous equivalent decimal
+ code ``'``.
+
.. _deprecated-features-3.0:
Features deprecated in 3.0
diff --git a/tests/admin_docs/test_views.py b/tests/admin_docs/test_views.py
index bcadff7d8a..03d38bb2fd 100644
--- a/tests/admin_docs/test_views.py
+++ b/tests/admin_docs/test_views.py
@@ -199,7 +199,7 @@ class TestModelDetailView(TestDataMixin, AdminDocsTestCase):
"""
Methods with keyword arguments should have their arguments displayed.
"""
- self.assertContains(self.response, "
suffix='ltd'
")
+ self.assertContains(self.response, '
suffix='ltd'
')
def test_methods_with_multiple_arguments_display_arguments(self):
"""
diff --git a/tests/auth_tests/test_forms.py b/tests/auth_tests/test_forms.py
index e12cf0161f..e36931501e 100644
--- a/tests/auth_tests/test_forms.py
+++ b/tests/auth_tests/test_forms.py
@@ -236,7 +236,7 @@ class UserCreationFormTest(TestDataMixin, TestCase):
form = UserCreationForm()
self.assertEqual(
form.fields['password1'].help_text,
- '
Your password can't be too similar to your other personal information.
'
+ '
Your password can't be too similar to your other personal information.