【问题标题】:Does Pydantic accept the same query with both single and multi values?Pydantic 是否接受具有单值和多值的相同查询?
【发布时间】:2021-02-18 15:31:14
【问题描述】:

我的架构:

class ArticleBase(Schema):
    page: Optional[int] = 1
    topic: Optional[List[str]] = Query(None)

路由器:

@api.get("/articles/", tags = ['Articles'])
def article_list(request, article: ArticleBase = Query(...)):
    return article

我希望 Pydantic/FastAPI 接受单个值和多个值的查询。

我希望他们都被接受:

www.example.com/articles/?topic=hello&topic=world
www.example.com/articles/?topic=hello

我怎样才能实现它?

我收到的错误消息:

"msg": "value is not a valid list",
"type": "type_error.list"

【问题讨论】:

  • 不太确定这个但我会尝试将topic的默认值设置为None而不是Query(None)。
  • @igotinfected,感谢您的评论。它没有用。有趣的是,编写值列表也不会被接受。

标签: python fastapi pydantic


【解决方案1】:

通过从我的代码中删除Optional,我设法让它按我想要的方式工作。它接受单个值和多个值的查询。

我的工作代码:

class ArticleBase(Schema):
    page: Optional[int] = 1
    topic: List[str] = Query(None)

不明白为什么会这样。也许我在文档中遗漏了一些东西,但仔细阅读并没有找到任何相关内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-01
    • 2016-05-21
    • 2020-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多