Fixes #2066: Catch AddrFormatError on invalid IP addresses

This commit is contained in:
Jeremy Stretch 2018-05-22 13:56:11 -04:00
parent e5af4f6f17
commit b0cd372af9

View File

@ -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):