下面是一个示例代码,演示了如何在验证规则中使用不同属性来绑定对象。
from marshmallow import Schema, fields, validate, ValidationError
class PersonSchema(Schema):
name = fields.Str()
age = fields.Int()
@validates('age')
def validate_age(self, age, field):
name = field.parent.name # 获取父级字段的值
if name == 'Alice' and age < 18:
raise ValidationError("Alice必须年满18岁")
person_data = {
'name': 'Alice',
'age': 16
}
schema = PersonSchema()
try:
result = schema.load(person_data)
except ValidationError as err:
print(err.messages)
在上面的示例中,我们定义了一个PersonSchema
类,其中有两个属性name
和age
。我们使用@validates
装饰器来定义验证规则。
在validate_age
方法中,我们可以通过field.parent
来获取父级字段的值。在这个例子中,我们获取了name
字段的值,并根据它的值判断age
是否符合要求。如果不符合要求,我们抛出一个ValidationError
异常。
然后,我们创建了一个PersonSchema
实例,并使用load
方法来验证person_data
对象。如果验证失败,我们可以通过err.messages
来获取错误消息。
在这个示例中,当name
为"Alice"且age
小于18岁时,会触发验证错误,输出错误消息"{'age': ['Alice必须年满18岁']}"。
上一篇:绑定对象到Vue多选菜单
下一篇:绑定对象属性到表格单元的技术