1 |
|
---|
2 | Index: forms.py
|
---|
3 | ===================================================================
|
---|
4 | --- forms.py (revision 10821)
|
---|
5 | +++ forms.py (working copy)
|
---|
6 | @@ -88,7 +88,13 @@
|
---|
7 | # alter self.fields, we create self.fields here by copying base_fields.
|
---|
8 | # Instances should always modify self.fields; they should not modify
|
---|
9 | # self.base_fields.
|
---|
10 | +
|
---|
11 | self.fields = deepcopy(self.base_fields)
|
---|
12 | + for fieldName, field in self.fields.items():
|
---|
13 | + try:
|
---|
14 | + field.widget.choices.field = field
|
---|
15 | + except:
|
---|
16 | + pass
|
---|
17 |
|
---|
18 | def __unicode__(self):
|
---|
19 | return self.as_table()
|
---|
20 | Index: widgets.py
|
---|
21 | ===================================================================
|
---|
22 | --- widgets.py (revision 10821)
|
---|
23 | +++ widgets.py (working copy)
|
---|
24 | @@ -396,6 +396,13 @@
|
---|
25 | # more than once.
|
---|
26 | self.choices = list(choices)
|
---|
27 |
|
---|
28 | + def __deepcopy__(self, memo):
|
---|
29 | + obj = copy.copy(self)
|
---|
30 | + obj.attrs = self.attrs.copy()
|
---|
31 | + obj.choices = copy.copy(self.choices)
|
---|
32 | + memo[id(self)] = obj
|
---|
33 | + return obj
|
---|
34 | +
|
---|
35 | def render(self, name, value, attrs=None, choices=()):
|
---|
36 | if value is None: value = ''
|
---|
37 | final_attrs = self.build_attrs(attrs, name=name)
|
---|