jcu*_*nte 3 python marshmallow
我想了解是否可以使用棉花糖验证函数来检查列表中的所有元素是否唯一。
我有以下架构:
from marshmallow import Schema, fields, validate
class PaymentSchema(Schema):
...
currencies = fields.List(
fields.String(
required=True,
validate=[
validate.OneOf(["USD", "EUR", "AUS", "GBP"]),
validate.Length(min=1, max=4)
]
)
)
Run Code Online (Sandbox Code Playgroud)
是否有可能保证给定具有重复货币的货币列表 ( ["USD", "EUR", "EUR"]) 引发ValidationError?
谢谢!
装饰validates器允许自定义验证:
from marshmallow import Schema, ValidationError, fields, validate, validates
class PaymentSchema(Schema):
currencies = fields.List(
fields.String(
required=True,
validate=[
validate.OneOf(["USD", "EUR", "AUS", "GBP"]),
validate.Length(min=1, max=4)
]
)
)
@validates('currencies')
def no_duplicate_currencies(self, value):
if len(value) != len(set(value)):
raise ValidationError('currencies must not contain duplicate elements')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1363 次 |
| 最近记录: |