【问题标题】:How to do simple value check with error message in Deform/Colander如何在变形/滤锅中使用错误消息进行简单的值检查
【发布时间】:2012-09-14 20:56:39
【问题描述】:

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

所以,我只想检查该框是否已选中,并有一条错误消息说“您必须同意 T&C”。

我知道我可以使用:

colander.OneOf([True]) 

以确保选中该框。但是,OneOf 不允许自定义错误消息。这样做的正确方法是什么?

【问题讨论】:

    标签: python pyramid deform colander


    【解决方案1】:

    使用自定义验证器:

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

    【讨论】:

    • 谢谢克里斯,这很好。我建议在未来的版本中,如果不会导致问题,可能值得考虑为 OneOf 验证器添加 msg = 'Custom message' 关键字。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-07
    • 2013-05-15
    相关资源
    最近更新 更多