【问题标题】:How can I produce a warning with ceberus if a key is missing?如果缺少密钥,如何使用 ceberus 发出警告?
【发布时间】:2020-05-28 19:58:30
【问题描述】:

Cerberus 允许 required 字段,但我希望有一个“首选”字段类,以便在它们丢失时记录警告消息。我有一些看起来不太好的想法如下:

  1. 我可以用custom rule 扩展验证器,但是这些是用fieldvalue 参数调用的,这让我怀疑这个函数会在缺少的字段上调用。 __validate_required_fields 在文档上调用以生成丢失的文件会更理想,但我不确定如何将其挂钩。

  2. Cerberus 提供了一个 check_with 选项,但我不确定是否会在缺少的字段上调用它。

  3. 我可以尝试将这些标记为需要并在错误处理程序中进行跟踪。这并不理想,因为如果缺少“首选”字段,验证不会失败。

【问题讨论】:

    标签: python validation cerberus


    【解决方案1】:
    1. 您的怀疑是正确的,文档中没有的字段未经过完全验证。并且__validate_required_fields 没有被指定为被覆盖(名称修改会由于两个前导__ 而失败)。

    2. 不像1.

    3. 最好通过重写 validate 方法并后处理各种 (!) 错误容器来完成。

    我认为最简单的解决方案是针对两种不同的模式进行验证,一种用于检查hard,另一种用于从中获取警告。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-14
      • 1970-01-01
      • 2019-03-25
      • 2020-09-01
      • 2022-07-02
      • 2014-07-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多