如何在Deform/Colander中进行简单值检查并显示错误消息

2 投票
1 回答
1274 浏览
提问于 2025-04-16 21:59

我正在Deform/Colander中实现一个简单的“勾选同意条款和条件”的框。

所以,我只是想检查这个框是否被勾选,并显示一个错误信息,内容是“你必须同意条款和条件”。

我知道我可以使用:

colander.OneOf([True]) 

来确保这个框被勾选。不过,OneOf不允许自定义错误信息。那么,正确的做法是什么呢?

1 个回答

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,
                  )

撰写回答