Changeset 8348
- Timestamp:
- 08/14/08 10:37:43 (4 months ago)
- Files:
-
- django/trunk/django/contrib/sessions/models.py (modified) (1 diff)
- django/trunk/django/db/models/base.py (modified) (1 diff)
- django/trunk/django/db/models/fields/__init__.py (modified) (4 diffs)
- django/trunk/tests/modeltests/validation (deleted)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/trunk/django/contrib/sessions/models.py
r8193 r8348 66 66 except: 67 67 return {} 68 69 from django.contrib import admin 70 class SessionAdmin(admin.ModelAdmin): 71 pass django/trunk/django/db/models/base.py
r8291 r8348 369 369 save_base.alters_data = True 370 370 371 def validate(self):372 """373 First coerces all fields on this instance to their proper Python types.374 Then runs validation on every field. Returns a dictionary of375 field_name -> error_list.376 """377 error_dict = {}378 invalid_python = {}379 for f in self._meta.fields:380 try:381 setattr(self, f.attname, f.to_python(getattr(self, f.attname, f.get_default())))382 except validators.ValidationError, e:383 error_dict[f.name] = e.messages384 invalid_python[f.name] = 1385 for f in self._meta.fields:386 if f.name in invalid_python:387 continue388 errors = f.validate_full(getattr(self, f.attname, f.get_default()), self.__dict__)389 if errors:390 error_dict[f.name] = errors391 return error_dict392 393 371 def _collect_sub_objects(self, seen_objs, parent=None, nullable=False): 394 372 """ django/trunk/django/db/models/fields/__init__.py
r8296 r8348 161 161 unique = property(unique) 162 162 163 def validate_full(self, field_data, all_data):164 """165 Returns a list of errors for this field. This is the main interface,166 as it encapsulates some basic validation logic used by all fields.167 Subclasses should implement validate(), not validate_full().168 """169 if not self.blank and not field_data:170 return [_('This field is required.')]171 try:172 self.validate(field_data, all_data)173 except validators.ValidationError, e:174 return e.messages175 return []176 177 def validate(self, field_data, all_data):178 """179 Raises validators.ValidationError if field_data has any errors.180 Subclasses should override this to specify field-specific validation181 logic. This method should assume field_data has already been converted182 into the appropriate data type by Field.to_python().183 """184 pass185 186 163 def set_attributes_from_name(self, name): 187 164 self.name = name … … 751 728 return [oldforms.EmailField] 752 729 753 def validate(self, field_data, all_data):754 validators.isValidEmail(field_data, all_data)755 756 730 def formfield(self, **kwargs): 757 731 defaults = {'form_class': forms.EmailField} … … 830 804 return "IPAddressField" 831 805 832 def validate(self, field_data, all_data):833 validators.isValidIPAddress4(field_data, None)834 835 806 def formfield(self, **kwargs): 836 807 defaults = {'form_class': forms.IPAddressField} … … 877 848 def get_internal_type(self): 878 849 return "PhoneNumberField" 879 880 def validate(self, field_data, all_data):881 validators.isValidPhone(field_data, all_data)882 850 883 851 def formfield(self, **kwargs):
