From 4b6c998301fedec279ec97b6547e67c3e88b7ff0 Mon Sep 17 00:00:00 2001 From: Natalia <124304+nessita@users.noreply.github.com> Date: Tue, 3 Mar 2026 12:31:04 -0300 Subject: [PATCH 1/2] Fixed #36923 -- Added tests for non-hierarchical URI schemes in URLField.to_python(). Follow up to 951ffb3832cd83ba672c1e3deae2bda128eb9cca. --- tests/forms_tests/field_tests/test_urlfield.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tests/forms_tests/field_tests/test_urlfield.py b/tests/forms_tests/field_tests/test_urlfield.py index 87d348968737..d27714107da1 100644 --- a/tests/forms_tests/field_tests/test_urlfield.py +++ b/tests/forms_tests/field_tests/test_urlfield.py @@ -209,6 +209,20 @@ def test_urlfield_assume_scheme_when_colons(self): with self.subTest(value=value): self.assertEqual(f.clean(value), expected) + def test_urlfield_non_hierarchical_schemes_unchanged_in_to_python(self): + f = URLField() + tests = [ + "mailto:test@example.com", + "mailto:test@example.com?subject=Hello", + "tel:+1-800-555-0100", + "tel:555-0100", + "urn:isbn:0-486-27557-4", + "urn:ietf:rfc:2648", + ] + for value in tests: + with self.subTest(value=value): + self.assertEqual(f.to_python(value), value) + def test_custom_validator_longer_max_length(self): class CustomLongURLValidator(URLValidator): From a328c355d9625ecdc8f16b249daebba3c0ac2882 Mon Sep 17 00:00:00 2001 From: Jake Howard Date: Thu, 19 Feb 2026 21:48:23 +0000 Subject: [PATCH 2/2] Refs #35859 -- Mentioned django-tasks and external resources on docs/topics/tasks.txt. --- docs/topics/tasks.txt | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/docs/topics/tasks.txt b/docs/topics/tasks.txt index 06e83af0bc21..d3bc54f6b4f2 100644 --- a/docs/topics/tasks.txt +++ b/docs/topics/tasks.txt @@ -4,6 +4,8 @@ Django's Tasks framework .. versionadded:: 6.0 + For older Django versions, the :pypi:`django-tasks` backport is available. + For a web application, there's often more than just turning HTTP requests into HTTP responses. For some functionality, it may be beneficial to run code outside the request-response cycle. @@ -113,8 +115,13 @@ Third-party backends As mentioned at the beginning of this section, Django includes backends suitable for development and testing only. Production systems should rely on -backends that supply a worker process and durable queue implementation. To use -an external Task backend with Django, use the Python import path as the +backends that supply a worker process and a durable queue implementation. +Available third-party backends are listed on the `Community Ecosystem page +`__ and the `Tasks +framework grid from Django Packages +`__. + +To use an external Task backend with Django, use the Python import path as the :setting:`BACKEND ` of the :setting:`TASKS` setting, like so:: TASKS = {