| 1234567891011121314151617181920212223242526272829303132333435 |
- from django.core.exceptions import ValidationError
- from django.core.validators import BaseValidator, RegexValidator
- from django.utils.translation import gettext_lazy as _
- def prefix_validator(prefix):
- if prefix.ip != prefix.cidr.ip:
- raise ValidationError(
- _("{prefix} is not a valid prefix. Did you mean {suggested}?").format(
- prefix=prefix, suggested=prefix.cidr
- )
- )
- class MaxPrefixLengthValidator(BaseValidator):
- message = _('The prefix length must be less than or equal to %(limit_value)s.')
- code = 'max_prefix_length'
- def compare(self, a, b):
- return a.prefixlen > b
- class MinPrefixLengthValidator(BaseValidator):
- message = _('The prefix length must be greater than or equal to %(limit_value)s.')
- code = 'min_prefix_length'
- def compare(self, a, b):
- return a.prefixlen < b
- DNSValidator = RegexValidator(
- regex=r'^([0-9A-Za-z_-]+|\*)(\.[0-9A-Za-z_-]+)*\.?$',
- message=_('Only alphanumeric characters, asterisks, hyphens, periods, and underscores are allowed in DNS names'),
- code='invalid'
- )
|