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:
parent
dae5863058
commit
2315ccc499
|
@ -344,7 +344,30 @@ class MatchesRegularExpression:
|
|||
|
||||
def __call__(self, field_data, all_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:
|
||||
"Checks that the provided URL points to a document with a listed mime type"
|
||||
|
|
Loading…
Reference in New Issue