Move prefix_validator() to ipam.validators

This commit is contained in:
Jeremy Stretch 2020-01-22 16:33:34 -05:00
parent ba6df87d10
commit aa56c020ab
2 changed files with 8 additions and 7 deletions

View File

@ -2,15 +2,10 @@ from django.core.exceptions import ValidationError
from django.db import models
from netaddr import AddrFormatError, IPNetwork
from . import lookups
from . import lookups, validators
from .formfields import IPFormField
def prefix_validator(prefix):
if prefix.ip != prefix.cidr.ip:
raise ValidationError("{} is not a valid prefix. Did you mean {}?".format(prefix, prefix.cidr))
class BaseIPField(models.Field):
def python_type(self):
@ -51,7 +46,7 @@ class IPNetworkField(BaseIPField):
IP prefix (network and mask)
"""
description = "PostgreSQL CIDR field"
default_validators = [prefix_validator]
default_validators = [validators.prefix_validator]
def db_type(self, connection):
return 'cidr'

View File

@ -1,6 +1,12 @@
from django.core.exceptions import ValidationError
from django.core.validators import BaseValidator, RegexValidator
def prefix_validator(prefix):
if prefix.ip != prefix.cidr.ip:
raise ValidationError("{} is not a valid prefix. Did you mean {}?".format(prefix, prefix.cidr))
class MaxPrefixLengthValidator(BaseValidator):
message = 'The prefix length must be less than or equal to %(limit_value)s.'
code = 'max_prefix_length'