mirror of
https://github.com/django/django.git
synced 2025-07-07 11:19:12 +00:00
[soc2009/model-validation] use RegexValidator in RegexField
declarative definition prepared for RegexValidator children git-svn-id: http://code.djangoproject.com/svn/django/branches/soc2009/model-validation@11455 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
84c9cf16d3
commit
5ebafe3fb9
@ -23,6 +23,14 @@ url_re = re.compile(
|
|||||||
r'(?:/?|/\S+)$', re.IGNORECASE)
|
r'(?:/?|/\S+)$', re.IGNORECASE)
|
||||||
|
|
||||||
class RegexValidator(object):
|
class RegexValidator(object):
|
||||||
|
regex = ''
|
||||||
|
|
||||||
|
def __init__(self, regex=None):
|
||||||
|
if regex is not None:
|
||||||
|
self.regex = regex
|
||||||
|
if isinstance(self.regex, basestring):
|
||||||
|
self.regex = re.compile(regex)
|
||||||
|
|
||||||
def __call__(self, value):
|
def __call__(self, value):
|
||||||
"""
|
"""
|
||||||
Validates that the input matches the regular expression.
|
Validates that the input matches the regular expression.
|
||||||
@ -31,8 +39,10 @@ class RegexValidator(object):
|
|||||||
raise ValidationError(_(u'Enter a valid value.'), code='invalid')
|
raise ValidationError(_(u'Enter a valid value.'), code='invalid')
|
||||||
|
|
||||||
class URLValidator(RegexValidator):
|
class URLValidator(RegexValidator):
|
||||||
def __init__(self, regex=url_re, verify_exists=False, validator_user_agent=URL_VALIDATOR_USER_AGENT):
|
regex = url_re
|
||||||
self.regex = regex
|
|
||||||
|
def __init__(self, verify_exists=False, validator_user_agent=URL_VALIDATOR_USER_AGENT):
|
||||||
|
super(URLValidator, self).__init__()
|
||||||
self.verify_exists = verify_exists
|
self.verify_exists = verify_exists
|
||||||
self.user_agent = validator_user_agent
|
self.user_agent = validator_user_agent
|
||||||
|
|
||||||
|
@ -439,17 +439,7 @@ class RegexField(CharField):
|
|||||||
if isinstance(regex, basestring):
|
if isinstance(regex, basestring):
|
||||||
regex = re.compile(regex)
|
regex = re.compile(regex)
|
||||||
self.regex = regex
|
self.regex = regex
|
||||||
|
self.validators.append(validators.RegexValidator(regex=regex))
|
||||||
def validate(self, value):
|
|
||||||
"""
|
|
||||||
Validates that the input matches the regular expression. Returns a
|
|
||||||
Unicode object.
|
|
||||||
"""
|
|
||||||
super(RegexField, self).validate(value)
|
|
||||||
if value == u'':
|
|
||||||
return value
|
|
||||||
if not self.regex.search(value):
|
|
||||||
raise ValidationError(self.error_messages['invalid'])
|
|
||||||
|
|
||||||
class EmailField(CharField):
|
class EmailField(CharField):
|
||||||
default_error_messages = {
|
default_error_messages = {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user