From a2f8a4a6f9ac094edde937e56a3ecbd112ee448c Mon Sep 17 00:00:00 2001 From: Jacob Walls Date: Wed, 10 Jun 2026 16:24:10 -0400 Subject: Fixed #36104 -- Returned NotImplemented in Media.__add__ for non-Media RHS. --- django/forms/widgets.py | 2 ++ tests/forms_tests/tests/test_media.py | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/django/forms/widgets.py b/django/forms/widgets.py index 56ff7bb5ad..82498aa662 100644 --- a/django/forms/widgets.py +++ b/django/forms/widgets.py @@ -262,6 +262,8 @@ class Media: return list(dict.fromkeys(chain.from_iterable(filter(None, lists)))) def __add__(self, other): + if not isinstance(other, Media): + return NotImplemented combined = Media() combined._css_lists = self._css_lists[:] combined._js_lists = self._js_lists[:] diff --git a/tests/forms_tests/tests/test_media.py b/tests/forms_tests/tests/test_media.py index b24ed948a9..854e52d95c 100644 --- a/tests/forms_tests/tests/test_media.py +++ b/tests/forms_tests/tests/test_media.py @@ -859,6 +859,13 @@ class FormsMediaTestCase(SimpleTestCase): self.assertEqual(merged._css_lists, [{"screen": ["a.css"]}]) self.assertEqual(merged._js_lists, [["a"]]) + def test_add_invalid_type(self): + class InvalidType: + pass + + with self.assertRaises(TypeError): + Media() + InvalidType() + def test_render_js_with_attrs(self): media = Media(js=[Script("/path/to/js", integrity="sha256-abc")]) self.assertHTMLEqual( -- cgit v1.3