From 693dcd90139a87462fc636c0b698743bfce677a0 Mon Sep 17 00:00:00 2001 From: Luke Plant Date: Tue, 9 Mar 2010 22:59:02 +0000 Subject: [PATCH] [1.1.X] Fixed #12048 - MultiWidget does not define `__deepcopy__` Thanks to powderflask for report, test case and initial patch. Backport of [12739] from trunk git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.1.X@12740 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/forms/widgets.py | 5 ++++ tests/regressiontests/forms/tests.py | 2 ++ tests/regressiontests/forms/widgets.py | 40 ++++++++++++++++++++++++++ 3 files changed, 47 insertions(+) diff --git a/django/forms/widgets.py b/django/forms/widgets.py index c7bb1cbe9a..2a4b864b5b 100644 --- a/django/forms/widgets.py +++ b/django/forms/widgets.py @@ -744,6 +744,11 @@ class MultiWidget(Widget): media = media + w.media return media media = property(_get_media) + + def __deepcopy__(self, memo): + obj = super(MultiWidget, self).__deepcopy__(memo) + obj.widgets = copy.deepcopy(self.widgets) + return obj class SplitDateTimeWidget(MultiWidget): """ diff --git a/tests/regressiontests/forms/tests.py b/tests/regressiontests/forms/tests.py index 6d418fa5a3..cb2e0ad874 100644 --- a/tests/regressiontests/forms/tests.py +++ b/tests/regressiontests/forms/tests.py @@ -32,6 +32,8 @@ from widgets import tests as widgets_tests from formsets import tests as formset_tests from media import media_tests +from widgets import WidgetTests + __test__ = { 'extra_tests': extra_tests, 'fields_tests': fields_tests, diff --git a/tests/regressiontests/forms/widgets.py b/tests/regressiontests/forms/widgets.py index a397cdf63b..dfa3a79353 100644 --- a/tests/regressiontests/forms/widgets.py +++ b/tests/regressiontests/forms/widgets.py @@ -1234,3 +1234,43 @@ u'