Address validationΒΆ
During the checkout process, both the shipping and billing addresses can be specified.
The default address validator is set to salesman.checkout.utils.validate_address()
that simply makes both address fields required to be entered by the customer.
This behavior can be overridden by providing a dotted path in SALESMAN_ADDRESS_VALIDATOR
setting that points to your custom validator function.
Tip
To validate a specific address format split the text by \n
character and validate each line.
def validate_address(value: str, context: dict = {}) -> str:
"""
Default address validator function. Can be overriden by providing a
dotted path to a function in ``SALESMAN_ADDRESS_VALIDATOR`` setting.
Args:
value (str): Address text to be validated
context (dict, optional): Validator context data. Defaults to {}.
Raises:
ValidationError: In case address is not valid
Returns:
str: Validated value
"""
if not value:
raise ValidationError(_(f"Address is required."))
return value
Your custom validator should accept a text value
and return the validated version.
It also receives a context
dictionary with additional context data like request
,
a basket
object and address
type (set to either shipping or billing).