0

我已经为属性编写了验证函数它是否正确以及我应该如何为具有空白 = True 和 add_1 的相同属性编写任何要添加的条件

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

注意:所有验证器必须返回 True 或 False

验证器.py

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

2 回答 2

1

根据Model Reference,当您将“blank=True”属性添加到任何模型字段时,该字段将变为可选。如果您希望某个字段是必需的,请不要指定空白属性,因为默认值为空白=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
于 2022-01-30T04:14:29.963 回答
0
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

这行得通吗?

于 2022-01-30T05:23:41.040 回答