如何在 marshmallow "fields" 中添加双重验证?(PeeWee)

How could double validation be added in marshmallow "fields"?(PeeWee)

我向 RESTful API 发送请求。我还有一个 PeeWee 模型来保存回复。我用 Marshmallow 检查验证。

在响应体中,有一个变量不是某种数据类型(Integer or String)。我希望我的 PeeWee 模型有多重验证。

示例如下:

class Example(Schema):
    availableLimit = fields.Str(
        required=False, allow_none=True, validate=validate.Regexp(REGEX.NUMBER_LARGE)
    )

在 API 响应中,availableLimit 恰好有 2 种可能性:字符串“UNLIMITED”或任何整数。 我如何使用像 validate=validate.Regexp(REGEX.NUMBER_LARGE && REGEX.UNLIMITED_STRING)?

这样的 Marshmallow 字段验证来验证它

此外 REGEX.NUMBER_LARGEREGEX.UNLIMITED_STRING 是我的模式。

我认为您可以从 marshmallow 导入 post_dump。然后,您可以在架构 class.

中使用 post_dump 作为装饰器方法

例如

from marshmallow import ValidationError, post_dump
class Example(Schema):
    availableLimit = fields.Str(required=False, allow_none=True,validate=validate.Regexp(REGEX.NUMBER_LARGE))
    @post_dump('availableLimit')
    def multiple_validation(self, value):
        ....

我希望这是清楚的