我正在创建两个模式OTPSchema,VMCreationSchema。VMCreationSchema使用Pull字段获取VMSchema的特定字段,即规格和图像标识
from marshmallow import (Schema, fields,
ValidationError, validates,
validates_schema, RAISE)
class VMSchema(Schema):
uuid = fields.UUID(required=True)
owner = fields.Str(required=True)
specs = fields.Dict(required=True)
hostname = fields.Str(required=True)
status = fields.Str(required=True)
image_uuid = fields.UUID(required=True)
class OTPSchema(BaseStrictSchema):
name = fields.Str(required=True)
realm = fields.Str(required=True)
token = fields.Str(required=True)
class VMCreationScheme(OTPSchema):
specs = fields.Pluck(VMSchema, "specs", required=True)
uuid = fields.Pluck(VMSchema, "image_uuid", required=True)
但是,当出现验证错误时,消息不是平坦的,即显示字段内的字段,然后显示消息。 例如,如果我
k = {
"name": "ahmedbilal",
"realm": "admin",
"token": "TOKEN",
"specs": {"cpu": 2, "ram": "2GB"},
"uuid": "meow"
}
s = VMCreationSchema()
try:
r = s.load(k)
print(r)
print(s.dump(r))
except ValidationError as e:
print(e.messages)
它将打印以下错误{'uuid': {'image_uuid': ['Not a valid UUID.']}}
。
我想要那样的{'uuid': ['Not a valid UUID.']}}
首选的解决方案是使用棉花糖库中内置的东西
目前没有回答
相关问题 更多 >
编程相关推荐