我有一个与下面类似的模式:
class MySchema(Schema):
nested = fields.Nested(
NestedSchema, required=True, many=True, validate=[validate.Length(min=1)]
)
class NestedSchema(Schema):
somefield = fields.Field()
somefield2 = fields.Field()
我希望我的somefield
字段是必需的,但仅适用于列表中的第一项。有人知道怎么做到吗?在
如果可能的话,我还想把我的错误信息保存在适当的元素中,我返回了错误dict:
^{pr2}$我已经尝试过用pre_load
和validates_schema
来完成,但我无法将消息放在errors dict中的适当位置。问题是somefield
错误被放在_schema
中,或者类似这样:
{
'nested': {
'somefield': ['This field is required']
}
}
样本预载:
@pre_load(pass_many=True)
def validate_somefield(self, data, many):
try:
address = data[0]
except IndexError:
pass
else:
if address.get('somefield') is None:
raise ValidationError(
'somefield is required for first element'
)
目前没有回答
相关问题 更多 >
编程相关推荐