【问题标题】:How can i validate django field with either of two validators?我如何使用两个验证器中的任何一个来验证 django 字段?
【发布时间】:2022-11-21 19:50:29
【问题描述】:

这是代码, 我想IP地址满足任何一个验证_fqdn或者验证_ipv4_地址.

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])

我怎样才能做到这一点?

【问题讨论】:

    标签: python django django-models django-rest-framework orm


    【解决方案1】:

    一个新的验证器会做:

    def validate_fqdn_or_ipv4_address(value):
        try:
            return validate_fqdn(value)
        except:
            return validate_ipv4_address(value)
    

    【讨论】:

      猜你喜欢
      • 2018-09-08
      • 2014-08-08
      • 1970-01-01
      • 2017-01-22
      • 2010-12-10
      • 1970-01-01
      • 2021-10-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多