0

我向 RESTful API 发送请求。我还有一个 PeeWee 模型来保留响应。我用棉花糖检查验证。

在响应正文中,有一个不是特定数据类型(整数或字符串)的变量。我希望我的 PeeWee 模型有多重验证。

这是示例:

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

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

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

4

1 回答 1

0

我认为您可以post_dumpmarshmallow. 然后,您可以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):
        ....

我希望这很清楚

于 2022-02-11T18:12:19.733 回答