我正在Deform / Colander中实施一个简单的“勾选同意条款和条件”。
因此,我只想检查该复选框是否有错误信息“你必须同意T& C”。
我明白我可以使用:
colander.OneOf([True])
确保勾选方框。但是,OneOf不允许自定义错误消息。这样做的正确方法是什么?
答案 0 :(得分:5)
使用自定义验证器:
def t_and_c_validator(node, value):
if not value:
raise Invalid(node, 'You must agree to the T&C')
class MySchema(colander.Schema):
t_and_c = colander.SchemaNode(
colander.Boolean(),
description='Terms and Conditions',
widget=deform.widget.CheckboxWidget(),
title='Terms and Conditions',
validator=t_and_c_validator,
)