Trees | Indices | Help |
|
---|
|
1 from django import forms 2 from django.utils.encoding import smart_str, smart_unicode 3 4 from django.forms.util import ErrorDict, ValidationError 5 from django.forms.fields import FileField, CharField 68 115513 """ 14 Cleans all of self.data and populates self._errors and 15 self.cleaned_data. 16 """ 17 self._errors = ErrorDict() 18 if not self.is_bound: # Stop further processing. 19 return 20 self.cleaned_data = {} 21 # If the form is permitted to be empty, and none of the form data has 22 # changed from the initial data, short circuit any validation. 23 if self.empty_permitted and not self.has_changed(): 24 return 25 for name, field in self.fields.items(): 26 # value_from_datadict() gets the data from the data dictionaries. 27 # Each widget type knows how to retrieve its own data, because some 28 # widgets split data over several HTML fields. 29 value = field.widget.value_from_datadict(self.data, self.files, self.add_prefix(name)) 30 try: 31 if isinstance(field, FileField): 32 initial = self.initial.get(name, field.initial) 33 value = field.clean(value, initial) 34 elif isinstance(field, CharField): 35 if value is not None and isinstance(value, basestring) and len(value)>0: 36 value = str(smart_str(value)) 37 else: 38 value = field.clean(value) 39 else: 40 value = field.clean(value) 41 self.cleaned_data[name] = value 42 if hasattr(self, 'clean_%s' % name): 43 value = getattr(self, 'clean_%s' % name)() 44 self.cleaned_data[name] = value 45 except ValidationError, e: 46 self._errors[name] = self.error_class(e.messages) 47 if name in self.cleaned_data: 48 del self.cleaned_data[name] 49 try: 50 self.cleaned_data = self.clean() 51 except ValidationError, e: 52 self._errors[forms.Form.NON_FIELD_ERRORS] = self.error_class(e.messages) 53 if self._errors: 54 delattr(self, 'cleaned_data')
Trees | Indices | Help |
|
---|
Generated by Epydoc 3.0.1 on Tue Jan 24 19:49:39 2012 | http://epydoc.sourceforge.net |