﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
26311	Clean django.contrib.admin.widgets.RelatedFieldWidgetWrapper.__deepcopy__	James Pic	nobody	"Currently, django.contrib.admin.widget.RelatedFieldWidgetWrapper defines:

{{{
    def __deepcopy__(self, memo):
        obj = copy.copy(self)
        obj.widget = copy.deepcopy(self.widget, memo)
        obj.attrs = self.widget.attrs
        memo[id(self)] = obj
        return obj
}}}

I tried to run the tests (with python3 runtests.py admin*) after removing that, and it seemed like it didn't break anything. So my first question is: what use case is this meant to support ? Is that use case tested ?

Also, RelatedFieldWidgetWrapper inherits from Widget, which defines:

{{{
    def __deepcopy__(self, memo):
        obj = copy.copy(self)
        obj.attrs = self.attrs.copy()
        memo[id(self)] = obj
        return obj
}}}

Question is: can we change RelatedFieldWidgetWrapper.__deepcopy__ to:

{{{
    def __deepcopy__(self, memo):
        obj = super(RelatedFieldWidgetWrapper, self).__deepcopy__(memo)
copy.copy(self)
        obj.widget = copy.deepcopy(self.widget, memo)
        return obj
}}}

Like in MultiWidgets, which has:

{{{
    def __deepcopy__(self, memo):
        obj = super(MultiWidget, self).__deepcopy__(memo)
        obj.widgets = copy.deepcopy(self.widgets)
        return obj
}}}

Another problem I found is that it didn't seem to break any test to just remove RelatedFieldWidgetWrapper.__deepcopy__. Is it tested anywhere ? Or should we add a test for that too ?"	Uncategorized	closed	Uncategorized	1.9	Normal	invalid			Unreviewed	0	0	0	0	0	0
