用漏勺验证可选值

问题描述 投票:3回答:1

我正在使用Colander来验证金字塔Web服务器的请求参数。例如:

class MySchema(colander.MappingSchema):                                         
    first_name = colander.SchemaNode(colander.String())                               
    last_name = colander.SchemaNode(colander.String())                              

此处,first_namelast_name是必需参数。如果我使用missing='',那么这将使它们成为可选的,但它们仍将作为空字符串添加到反序列化中,如果用户提交一个空字符串,这实际上没有用。

我所能想到的最好是missing=None,然后稍后检查None

是否有一种方法可以将参数标记为真正可选的?意思是,如果它们不在请求中,那么它们也不应该在反序列化结果中。

python pyramid colander
1个回答
3
投票

我认为您正在寻找missing=colander.drop。从docs

colander.drop-表示将从架构中删除的值如果在反序列化过程中缺少它。作为值传递给SchemaNode缺少关键字参数。

© www.soinside.com 2019 - 2024. All rights reserved.