Fixed #17127 -- Made field validators list independent per form instance. Thanks claudep for report and patch.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@17046 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
b87114962f
commit
7a718f0f3a
|
@ -178,6 +178,7 @@ class Field(object):
|
|||
result = copy.copy(self)
|
||||
memo[id(self)] = result
|
||||
result.widget = copy.deepcopy(self.widget, memo)
|
||||
result.validators = self.validators[:]
|
||||
return result
|
||||
|
||||
class CharField(Field):
|
||||
|
|
|
@ -789,6 +789,19 @@ class FormsTestCase(TestCase):
|
|||
f = Person()
|
||||
self.assertEqual(f['gender'].field.choices, [('f', 'Female'), ('m', 'Male')])
|
||||
|
||||
def test_validators_independence(self):
|
||||
""" Test that we are able to modify a form field validators list without polluting
|
||||
other forms """
|
||||
from django.core.validators import MaxValueValidator
|
||||
class MyForm(Form):
|
||||
myfield = CharField(max_length=25)
|
||||
|
||||
f1 = MyForm()
|
||||
f2 = MyForm()
|
||||
|
||||
f1.fields['myfield'].validators[0] = MaxValueValidator(12)
|
||||
self.assertFalse(f1.fields['myfield'].validators[0] == f2.fields['myfield'].validators[0])
|
||||
|
||||
def test_hidden_widget(self):
|
||||
# HiddenInput widgets are displayed differently in the as_table(), as_ul())
|
||||
# and as_p() output of a Form -- their verbose names are not displayed, and a
|
||||
|
|
Loading…
Reference in New Issue