如何在 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_LARGE
和 REGEX.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):
....
我希望这是清楚的
我向 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)
?
此外 REGEX.NUMBER_LARGE
和 REGEX.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):
....
我希望这是清楚的