|
@@ -2,15 +2,10 @@ from django.core.exceptions import ValidationError
|
|
|
from django.db import models
|
|
from django.db import models
|
|
|
from netaddr import AddrFormatError, IPNetwork
|
|
from netaddr import AddrFormatError, IPNetwork
|
|
|
|
|
|
|
|
-from . import lookups
|
|
|
|
|
|
|
+from . import lookups, validators
|
|
|
from .formfields import IPFormField
|
|
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):
|
|
class BaseIPField(models.Field):
|
|
|
|
|
|
|
|
def python_type(self):
|
|
def python_type(self):
|
|
@@ -51,7 +46,7 @@ class IPNetworkField(BaseIPField):
|
|
|
IP prefix (network and mask)
|
|
IP prefix (network and mask)
|
|
|
"""
|
|
"""
|
|
|
description = "PostgreSQL CIDR field"
|
|
description = "PostgreSQL CIDR field"
|
|
|
- default_validators = [prefix_validator]
|
|
|
|
|
|
|
+ default_validators = [validators.prefix_validator]
|
|
|
|
|
|
|
|
def db_type(self, connection):
|
|
def db_type(self, connection):
|
|
|
return 'cidr'
|
|
return 'cidr'
|