RPC接口date类型参数校验时报错:'invalid': 'Not a valid date.'解决方法

RPC接口date类型参数校验时如何处理前端传递的空字符串类型数据

对于rpc接口使用use_args 校验参数的时候,我们常常需要校验date这种日期类型参数,但有时候作为非必传参数,前端给我们传递的参数会是一个空字符串,这时候采用fields.Date()进行校验时通常回产生400 报错,显示参数传递错误:‘invalid’: ‘Not a valid date.’,
这是由于fields.py中对于传递的参数做校验时无法反序列化空字符串导致报错

图1

要解决这个问题,我们可以重写一下Date 这个类,加上一层判断

class BlankableDate(fields.Date):
    """
    可以将空字符串反序列化为 None 的日期类型
    """
    def _deserialize(self, value, attr, data):
        if value == "":
            return None
        else:
            return super()._deserialize(value, attr, data)

这样再做参数校验时,直接使用定义后的模型类做校验
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值