def validate(self, value):
    super(IPField, self).validate(value)
    if ((not value) and (not self.required)):
        return
    try:
        if self.mask:
            self.ip = netaddr.IPNetwork(value)
        else:
            self.ip = netaddr.IPAddress(value)
    except Exception:
        raise ValidationError(self.invalid_format_message)
    if (not any([(((self.version & IPv4) > 0) and (self.ip.version == 4)), (((self.version & IPv6) > 0) and (self.ip.version == 6))])):
        raise ValidationError(self.invalid_version_message)
    if self.mask:
        if ((self.ip.version == 4) and (not (self.min_mask <= self.ip.prefixlen <= self.max_v4_mask))):
            raise ValidationError(self.invalid_mask_message)
        if ((self.ip.version == 6) and (not (self.min_mask <= self.ip.prefixlen <= self.max_v6_mask))):
            raise ValidationError(self.invalid_mask_message)
def validate(self, value):
    super(IPField, self).validate(value)
    if ((not value) and (not self.required)):
        return
    try:
        if self.mask:
            self.ip = netaddr.IPNetwork(value)
        else:
            self.ip = netaddr.IPAddress(value)
    except Exception:
        raise ValidationError(self.invalid_format_message)
    if (not any([(((self.version & IPv4) > 0) and (self.ip.version == 4)), (((self.version & IPv6) > 0) and (self.ip.version == 6))])):
        raise ValidationError(self.invalid_version_message)
    if self.mask:
        if ((self.ip.version == 4) and (not (self.min_mask <= self.ip.prefixlen <= self.max_v4_mask))):
            raise ValidationError(self.invalid_mask_message)
        if ((self.ip.version == 6) and (not (self.min_mask <= self.ip.prefixlen <= self.max_v6_mask))):
            raise ValidationError(self.invalid_mask_message)