12345678910111213141516171819202122232425262728293031323334 |
- import re
- from django.core.exceptions import ValidationError
- from django.core.validators import RegexValidator
- def validate_lower(value):
- if value != value.lower():
- raise ValidationError(
- "Invalid value (not lowercase): %(value)s",
- code="invalid",
- params={"value": value},
- )
- def validate_upper(value):
- if value != value.upper():
- raise ValidationError(
- "Invalid value (not uppercase): %(value)s",
- code="invalid",
- params={"value": value},
- )
- validate_domain_name = [
- validate_lower,
- RegexValidator(
- regex=r"^(([a-z0-9_-]{1,63})\.)*[a-z0-9-]{1,63}$",
- message="Domain names must be labels separated by dots. Labels may consist of up to 63 letters, digits, "
- "hyphens, and underscores. The last label may not contain an underscore.",
- code="invalid_domain_name",
- flags=re.IGNORECASE,
- ),
- ]
|