自定义 django 验证函数

Custom django validation function

我已经为一个属性编写了验证函数是否正确,我应该如何为相同的属性编写空白 = True 并且 add_1 是必填字段任何要添加的条件

add_1 = models.CharField(max_length=255)
add_2 = models.CharField(max_length=255, blank=True)

注意:所有验证者必须return True or False

validators.py

def validate_add_1(value):
    if value is not None:
        try:
            if len(value) <= 255:
                return True
        except ValidationError:
            return False

根据 Model Reference,当您将“blank=True”属性添加到任何模型字段时,该字段将变为可选。如果您希望某个字段是必填字段,请不要指定空白属性,因为默认值为 blank=False。

对于验证器,我不确定你要做什么,但你可以尝试这样的事情:

def validate_add_1(value):
    val_len = False if len(value) > 255 else True
    # Return True if value is not blank/null and length of value <= 255
    return True if val_len and (value and value != '') else False

编辑

将上面的代码简化,方便大家理解:

def validate_add_1(value):

    # If length of value > 255, return False, else check for blank = True

    if len(value) > 255:
        return False
    else:

        # If value is not blank, AND value is not an empty string.
        # This is for checking blank = True condition is satisfied.

        if value and value != '':
            return True
        else:
            return False
def validate_add_2(value):
    val_len = False if len(value) > 255 else True
    return True if value == '' or (value and val_len) else False

这个有用吗?