花哨的字符串 'false' 到 bool

pydantic string 'false' to bool

我有像

这样的傲娇模特
class AccountingQueueFilters(BaseModel):
    no_batch_id: Optional[bool] = None

但是对于输入 'false' 来自 get params 它 return True

https://mysite.tech/accounting_queue/get?no_batch_id=false

如何修复?

你应该使用这个结构 它将允许您通过点符号访问属性并进行自定义类型检查

class QueryParams:
    def make_bool(self, value):
        return not(value == "false")  # some logic

    def __init__(self, boolable: str, zero: bool):
        self.boolable = self.make_bool(boolable)
        self.zero = zero


@router.get('/route')
async def route(
        data: QueryParams = Depends(),
):
    print(data) # boolable=false : str
    print(type(data.boolable))  # bool
    print("success")
    return Result(data)