validators.py 924 B

123456789101112131415161718192021222324252627282930
  1. from django.core.exceptions import ValidationError
  2. from django.core.validators import BaseValidator, RegexValidator
  3. def prefix_validator(prefix):
  4. if prefix.ip != prefix.cidr.ip:
  5. raise ValidationError("{} is not a valid prefix. Did you mean {}?".format(prefix, prefix.cidr))
  6. class MaxPrefixLengthValidator(BaseValidator):
  7. message = 'The prefix length must be less than or equal to %(limit_value)s.'
  8. code = 'max_prefix_length'
  9. def compare(self, a, b):
  10. return a.prefixlen > b
  11. class MinPrefixLengthValidator(BaseValidator):
  12. message = 'The prefix length must be greater than or equal to %(limit_value)s.'
  13. code = 'min_prefix_length'
  14. def compare(self, a, b):
  15. return a.prefixlen < b
  16. DNSValidator = RegexValidator(
  17. regex='^[0-9A-Za-z._-]+$',
  18. message='Only alphanumeric characters, hyphens, periods, and underscores are allowed in DNS names',
  19. code='invalid'
  20. )