diff --git a/gateway/fields.py b/gateway/fields.py index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..4a207e424b718e4ea086e5b9696b70514ad399f6 100644 --- a/gateway/fields.py +++ b/gateway/fields.py @@ -0,0 +1,8 @@ +from django.db.models.fields import CharField +from gateway.validators import validate_address + + +class AddressField(CharField): + def __init__(self, *args, **kwargs): + self.default_validators.append(validate_address) + super().__init__(*args, **kwargs) diff --git a/gateway/validators.py b/gateway/validators.py new file mode 100644 index 0000000000000000000000000000000000000000..1e662bb0c2460c90e1b83de878c79aee6ebfcd0f --- /dev/null +++ b/gateway/validators.py @@ -0,0 +1,9 @@ +from django.core.exceptions import ValidationError +from django.utils.translation import gettext_lazy as _ +from gateway.gateway import AddressValidation + + +def validate_address(value): + validator = AddressValidation() + if not validator.is_valid(value): + raise ValidationError(_('%(value)s is not a valid address'), params={'value': value})