mirror of
				https://github.com/django/django.git
				synced 2025-10-31 01:25:32 +00:00 
			
		
		
		
	Fixed #268 -- Added AnyValidator and fixed small bug in [399]. Thanks, Hugo
git-svn-id: http://code.djangoproject.com/svn/django/trunk@402 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
		| @@ -344,7 +344,30 @@ class MatchesRegularExpression: | |||||||
|  |  | ||||||
|     def __call__(self, field_data, all_data): |     def __call__(self, field_data, all_data): | ||||||
|         if not self.regexp.match(field_data): |         if not self.regexp.match(field_data): | ||||||
|             raise validators.ValidationError(self.error_message) |             raise ValidationError(self.error_message) | ||||||
|  |  | ||||||
|  | class AnyValidator: | ||||||
|  |     """ | ||||||
|  |     This validator tries all given validators. If any one of them succeeds, | ||||||
|  |     validation passes. If none of them succeeds, the given message is thrown | ||||||
|  |     as a validation error. The message is rather unspecific, so it's best to | ||||||
|  |     specify one on instantiation. | ||||||
|  |     """ | ||||||
|  |     def __init__(self, validator_list=[], error_message="This field is invalid."): | ||||||
|  |         self.validator_list = validator_list | ||||||
|  |         self.error_message = error_message | ||||||
|  |         for v in validator_list: | ||||||
|  |             if hasattr(v, 'always_test'): | ||||||
|  |                 self.always_test = True | ||||||
|  |  | ||||||
|  |     def __call__(self, field_data, all_data): | ||||||
|  |         for v in self.validator_list: | ||||||
|  |             try: | ||||||
|  |                 v(field_data, all_data) | ||||||
|  |                 return | ||||||
|  |             except ValidationError, e: | ||||||
|  |                 pass | ||||||
|  |         raise ValidationError(self.error_message) | ||||||
|  |  | ||||||
| class URLMimeTypeCheck: | class URLMimeTypeCheck: | ||||||
|     "Checks that the provided URL points to a document with a listed mime type" |     "Checks that the provided URL points to a document with a listed mime type" | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user