def to_python(self, value):
if value in self.empty_values:
return None, ''
value = force_text(value)
validators.RegexValidator(
regex=r'^\d{8}\-?(T|\d)\d{3}$',
message=_('Use the format YYYYMMDD-XXXX for your person number.')
)(value)
try:
date = datetime.strptime(value[:8], '%Y%m%d').date()
except ValueError:
date = value[:4] + '-' + value[4:6] \
+ '-' + value[6:8]
raise ValidationError(
_('%(date)s is an invalid date'),
params={'date': date}
)
number = value[-4:]
return date, number
python类RegexValidator()的实例源码
def test_model_local_path_field_validator(self):
"""Test model 'local_path' field `RegexValidator`"""
instance = self.model()
field = instance._meta.get_field('local_path')
validator = field.validators[0]
assert isinstance(validator, RegexValidator)
assert validator.regex.pattern == '[a-zA-Z0-9/._-]+'
assert (
validator.message ==
"Allowed characters: a-z, A-Z, 0-9, slash (/), dot (.), "
"underscore (_) and hyphen (-)."
)
def _set_regex(self, regex):
if isinstance(regex, six.string_types):
regex = re.compile(regex, re.UNICODE)
self._regex = regex
if hasattr(self, '_regex_validator') and self._regex_validator in self.validators:
self.validators.remove(self._regex_validator)
self._regex_validator = validators.RegexValidator(regex=regex)
self.validators.append(self._regex_validator)
def _set_regex(self, regex):
if isinstance(regex, six.string_types):
regex = re.compile(regex, re.UNICODE)
self._regex = regex
if hasattr(self, '_regex_validator') and self._regex_validator in self.validators:
self.validators.remove(self._regex_validator)
self._regex_validator = validators.RegexValidator(regex=regex)
self.validators.append(self._regex_validator)
def _set_regex(self, regex):
if isinstance(regex, six.string_types):
regex = re.compile(regex, re.UNICODE)
self._regex = regex
if hasattr(self, '_regex_validator') and self._regex_validator in self.validators:
self.validators.remove(self._regex_validator)
self._regex_validator = validators.RegexValidator(regex=regex)
self.validators.append(self._regex_validator)
def _set_regex(self, regex):
if isinstance(regex, six.string_types):
regex = re.compile(regex, re.UNICODE)
self._regex = regex
if hasattr(self, '_regex_validator') and self._regex_validator in self.validators:
self.validators.remove(self._regex_validator)
self._regex_validator = validators.RegexValidator(regex=regex)
self.validators.append(self._regex_validator)
def __init__(self, *args, **kwargs):
if "max_length" not in kwargs: kwargs["max_length"] = 13
if "validators" not in kwargs: kwargs["validators"] = [validators.MinLengthValidator(12), validators.RegexValidator(r"\d{2}:\d{2}:\d{6,7}")]
super(CadastralBlockTypeField, self).__init__(*args, **kwargs)
def __init__(self, *args, **kwargs):
if "max_length" not in kwargs: kwargs["max_length"] = 40
if "validators" not in kwargs: kwargs["validators"] = [validators.RegexValidator(r"\d{2}:\d{2}:\d{6,7}:\d{1,}")]
super(CadastralNumberTypeField, self).__init__(*args, **kwargs)
def __init__(self, *args, **kwargs):
if "max_length" not in kwargs: kwargs["max_length"] = 100
if "validators" not in kwargs: kwargs["validators"] = [validators.RegexValidator(r"[0-9a-zA-Z_.\-]{2,50}[@]{1}[0-9a-zA-Z_./-]{2,50}[.]{1}[a-zA-Z]{2,5}")]
super(EmailAddressTypeField, self).__init__(*args, **kwargs)
def __init__(self, *args, **kwargs):
if "max_length" not in kwargs: kwargs["max_length"] = 10
if "validators" not in kwargs: kwargs["validators"] = [validators.RegexValidator(r"\d{10}")]
super(LegalPersonINNTypeField, self).__init__(*args, **kwargs)
def __init__(self, *args, **kwargs):
if "max_length" not in kwargs: kwargs["max_length"] = 13
if "validators" not in kwargs: kwargs["validators"] = [validators.RegexValidator(r"[125]{1}\d{12}")]
super(OGRNCompanyTypeField, self).__init__(*args, **kwargs)
def __init__(self, *args, **kwargs):
if "max_length" not in kwargs: kwargs["max_length"] = 6
if "validators" not in kwargs: kwargs["validators"] = [validators.RegexValidator(r"\d{6}")]
super(PostalCodeRFTypeField, self).__init__(*args, **kwargs)
def __init__(self, *args, **kwargs):
if "max_length" not in kwargs: kwargs["max_length"] = 11
if "validators" not in kwargs: kwargs["validators"] = [validators.RegexValidator(r"\d{11}")]
super(SNILSTypeField, self).__init__(*args, **kwargs)
def __init__(self, *args, **kwargs):
if "validators" not in kwargs: kwargs["validators"] = [validators.RegexValidator(r"(\s*[^\s]\s*)+")]
super(nonEmptyStringField, self).__init__(*args, **kwargs)
def __init__(self, *args, **kwargs):
if "max_length" not in kwargs: kwargs["max_length"] = 100
if "validators" not in kwargs: kwargs["validators"] = [validators.RegexValidator(r"[?-??-???\-0-9][?-??-???\-\s'',.]*")]
super(rus_100Field, self).__init__(*args, **kwargs)
def __init__(self, *args, **kwargs):
if "max_length" not in kwargs: kwargs["max_length"] = 50
if "validators" not in kwargs: kwargs["validators"] = [validators.RegexValidator(r"[0-9]{2}-[0-9]{2}-[0-9]{1,}")]
super(sCertificate50Field, self).__init__(*args, **kwargs)
def __init__(self, *args, **kwargs):
if "max_length" not in kwargs: kwargs["max_length"] = 500
if "validators" not in kwargs: kwargs["validators"] = [validators.RegexValidator(r".+\.[p|P][d|D][f|F]")]
super(sName500PDFField, self).__init__(*args, **kwargs)
def __init__(self, *args, **kwargs):
if "validators" not in kwargs: kwargs["validators"] = [validators.MinValueValidator(2), validators.MaxValueValidator(18), validators.RegexValidator(r"\d{1,2}")]
super(DressSizeTypeField, self).__init__(*args, **kwargs)
def __init__(self, *args, **kwargs):
if "validators" not in kwargs: kwargs["validators"] = [validators.MinValueValidator(2), validators.MaxValueValidator(6), validators.RegexValidator(r"\d{1}")]
super(SmallDressSizeTypeField, self).__init__(*args, **kwargs)
def _set_regex(self, regex):
if isinstance(regex, six.string_types):
regex = re.compile(regex, re.UNICODE)
self._regex = regex
if hasattr(self, '_regex_validator') and self._regex_validator in self.validators:
self.validators.remove(self._regex_validator)
self._regex_validator = validators.RegexValidator(regex=regex)
self.validators.append(self._regex_validator)
def _set_regex(self, regex):
if isinstance(regex, six.string_types):
regex = re.compile(regex, re.UNICODE)
self._regex = regex
if hasattr(self, '_regex_validator') and self._regex_validator in self.validators:
self.validators.remove(self._regex_validator)
self._regex_validator = validators.RegexValidator(regex=regex)
self.validators.append(self._regex_validator)
def _set_regex(self, regex):
if isinstance(regex, six.string_types):
regex = re.compile(regex, re.UNICODE)
self._regex = regex
if hasattr(self, '_regex_validator') and self._regex_validator in self.validators:
self.validators.remove(self._regex_validator)
self._regex_validator = validators.RegexValidator(regex=regex)
self.validators.append(self._regex_validator)
def _set_regex(self, regex):
if isinstance(regex, six.string_types):
regex = re.compile(regex, re.UNICODE)
self._regex = regex
if hasattr(self, '_regex_validator') and self._regex_validator in self.validators:
self.validators.remove(self._regex_validator)
self._regex_validator = validators.RegexValidator(regex=regex)
self.validators.append(self._regex_validator)
def _set_regex(self, regex):
if isinstance(regex, six.string_types):
regex = re.compile(regex, re.UNICODE)
self._regex = regex
if hasattr(self, '_regex_validator') and self._regex_validator in self.validators:
self.validators.remove(self._regex_validator)
self._regex_validator = validators.RegexValidator(regex=regex)
self.validators.append(self._regex_validator)
def _set_regex(self, regex):
if isinstance(regex, six.string_types):
regex = re.compile(regex, re.UNICODE)
self._regex = regex
if hasattr(self, '_regex_validator') and self._regex_validator in self.validators:
self.validators.remove(self._regex_validator)
self._regex_validator = validators.RegexValidator(regex=regex)
self.validators.append(self._regex_validator)
def _set_regex(self, regex):
if isinstance(regex, six.string_types):
regex = re.compile(regex)
self._regex = regex
if hasattr(self, '_regex_validator') and self._regex_validator in self.validators:
self.validators.remove(self._regex_validator)
self._regex_validator = validators.RegexValidator(regex=regex)
self.validators.append(self._regex_validator)
def _set_regex(self, regex):
if isinstance(regex, six.string_types):
regex = re.compile(regex, re.UNICODE)
self._regex = regex
if hasattr(self, '_regex_validator') and self._regex_validator in self.validators:
self.validators.remove(self._regex_validator)
self._regex_validator = validators.RegexValidator(regex=regex)
self.validators.append(self._regex_validator)
def _set_regex(self, regex):
if isinstance(regex, six.string_types):
regex = re.compile(regex, re.UNICODE)
self._regex = regex
if hasattr(self, '_regex_validator') and self._regex_validator in self.validators:
self.validators.remove(self._regex_validator)
self._regex_validator = validators.RegexValidator(regex=regex)
self.validators.append(self._regex_validator)
def _set_regex(self, regex):
if isinstance(regex, six.string_types):
regex = re.compile(regex, re.UNICODE)
self._regex = regex
if hasattr(self, '_regex_validator') and self._regex_validator in self.validators:
self.validators.remove(self._regex_validator)
self._regex_validator = validators.RegexValidator(regex=regex)
self.validators.append(self._regex_validator)
def _set_regex(self, regex):
if isinstance(regex, six.string_types):
regex = re.compile(regex, re.UNICODE)
self._regex = regex
if hasattr(self, '_regex_validator') and self._regex_validator in self.validators:
self.validators.remove(self._regex_validator)
self._regex_validator = validators.RegexValidator(regex=regex)
self.validators.append(self._regex_validator)