自定义 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
这个有用吗?
我已经为一个属性编写了验证函数是否正确,我应该如何为相同的属性编写空白 = 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
这个有用吗?