Ticket #3718: 3718.diff
| File 3718.diff, 2.0 kB (added by Gary Wilson <gary.wilson@gmail.com>, 2 years ago) |
|---|
-
django/newforms/forms.py
old new 171 171 """ 172 172 Cleans all of self.data and populates self.__errors and self.cleaned_data. 173 173 """ 174 errors = ErrorDict()174 self.__errors = ErrorDict() 175 175 if not self.is_bound: # Stop further processing. 176 self.__errors = errors177 176 return 178 177 self.cleaned_data = {} 179 178 for name, field in self.fields.items(): … … 188 187 value = getattr(self, 'clean_%s' % name)() 189 188 self.cleaned_data[name] = value 190 189 except ValidationError, e: 191 errors[name] = e.messages190 self.__errors[name] = e.messages 192 191 try: 193 192 self.cleaned_data = self.clean() 194 193 except ValidationError, e: 195 errors[NON_FIELD_ERRORS] = e.messages196 if errors:194 self.__errors[NON_FIELD_ERRORS] = e.messages 195 if self.__errors: 197 196 delattr(self, 'cleaned_data') 198 self.__errors = errors199 197 200 198 def clean(self): 201 199 """ -
tests/regressiontests/forms/tests.py
old new 3515 3515 u'1' 3516 3516 >>> smart_unicode('foo') 3517 3517 u'foo' 3518 3519 3520 #################################### 3521 # Test accessing errors in clean() # 3522 #################################### 3523 3524 >>> class UserForm(Form): 3525 ... username = CharField(max_length=10) 3526 ... password = CharField(widget=PasswordInput) 3527 ... def clean(self): 3528 ... data = self.cleaned_data 3529 ... if not self.errors: 3530 ... data['username'] = data['username'].lower() 3531 ... return data 3532 3533 >>> f = UserForm({'username': 'SirRobin', 'password': 'blue'}) 3534 >>> f.is_valid() 3535 True 3536 >>> f.cleaned_data['username'] 3537 u'sirrobin' 3518 3538 """ 3519 3539 3520 3540 __test__ = {
