From b54bf87d59e8d639f13aa4b59117cc648034b6c3 Mon Sep 17 00:00:00 2001 From: Kumi Date: Fri, 12 Jul 2024 14:17:51 +0200 Subject: [PATCH] feat: enhance SubnetField to support non-strict IP parsing Updated SubnetField methods to use `ip_network` with `strict=False`, allowing for more lenient IP address parsing. Added `value_to_string` method to improve serialization of SubnetField values. This enhances flexibility and ensures robust handling of various IP formats. --- coldbrew/vpn/fields.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/coldbrew/vpn/fields.py b/coldbrew/vpn/fields.py index b957448..d9397d4 100644 --- a/coldbrew/vpn/fields.py +++ b/coldbrew/vpn/fields.py @@ -12,16 +12,20 @@ class SubnetField(models.CharField): def from_db_value(self, value, expression, connection): if value is None: return value - return ipaddress.ip_network(value) + return ipaddress.ip_network(value, strict=False) def to_python(self, value): if value is None: return value if isinstance(value, ipaddress._BaseNetwork): return value - return ipaddress.ip_network(value) + return ipaddress.ip_network(value, strict=False) def get_prep_value(self, value): if value is None: return value return str(value) + + def value_to_string(self, obj): + value = self.value_from_object(obj) + return self.get_prep_value(value)