Как я могу проверить поле django с помощью одного из двух валидаторов?

Вот код, Я хочу, чтобы ip_address удовлетворял одному из validate_fqdn или validate_ipv4_address.

import re
def validate_fqdn(value):
    
    pattern = re.compile(r'^[a-zA-Z0-9-_]+\.?[a-zA-Z0-9-_]+\.[a-zA-Z0-9-_]+$')
    if not pattern.match(value):
        raise ValidationError('Provided fqdn is not valid')
    return value

class KSerializer(serializers.HyperlinkedModelSerializer):
    ip_address = serializers.CharField(max_length = 100, validators = [validate_fqdn, validate_ipv4_address])

Как я могу этого достичь?

Новый валидатор будет делать:

def validate_fqdn_or_ipv4_address(value):
    try:
        return validate_fqdn(value)
    except:
        return validate_ipv4_address(value)
Вернуться на верх