Fixes #2066: Catch AddrFormatError on invalid IP addresses
This commit is contained in:
@@ -2,7 +2,7 @@ from __future__ import unicode_literals
|
|||||||
|
|
||||||
from django.core.exceptions import ValidationError
|
from django.core.exceptions import ValidationError
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from netaddr import IPNetwork
|
from netaddr import AddrFormatError, IPNetwork
|
||||||
|
|
||||||
from .formfields import IPFormField
|
from .formfields import IPFormField
|
||||||
from . import lookups
|
from . import lookups
|
||||||
@@ -26,7 +26,9 @@ class BaseIPField(models.Field):
|
|||||||
return value
|
return value
|
||||||
try:
|
try:
|
||||||
return IPNetwork(value)
|
return IPNetwork(value)
|
||||||
except ValueError as e:
|
except AddrFormatError as e:
|
||||||
|
raise ValidationError("Invalid IP address format: {}".format(value))
|
||||||
|
except (TypeError, ValueError) as e:
|
||||||
raise ValidationError(e)
|
raise ValidationError(e)
|
||||||
|
|
||||||
def get_prep_value(self, value):
|
def get_prep_value(self, value):
|
||||||
|
Reference in New Issue
Block a user