【问题标题】:Flexible Schema - BaseModel of Pydantic灵活的模式 - Pydantic 的 BaseModel
【发布时间】:2022-01-21 12:49:45
【问题描述】:

我将 pydantic 1.9.0 和 fastapi 0.71.0 与 Python 3.7.8 一起使用。以下是我定义模型的方式:

class PartModel(BaseModel):
    _id: str 
    _key: str 
    number: str = Field(...)
    name: str = Field(...)
    price: int = Field(...)

    class Config:
        schema_extra = {
            "example": {
                "_key": "12453",
                "number": "5F22",
                "name": "SHA9-169",
                "price": 4,
            }
        }

我想灵活使用模型,因为我的字典在长度方面并不完整。例如,一个字典可能有额外的键/值对。目前,当我尝试通过 FastApi 发出请求时,它不允许我在数据库中发布。有没有办法在不定义类中的每个键的情况下保持我的模型灵活/可扩展?

【问题讨论】:

  • 在 db 模型周围使用一个包装器,并尝试解决这个问题,在那里保留固定/主列,并在包装​​器中保留一个附加的列
  • 你能举个例子吗?
  • 对不起,上面的方法不起作用,因为一旦你定义了一个数据库模式,现在你想向它添加具有不同键值的数据,然后使用 nosql db
  • 已经在使用 nosql 数据库

标签: python database fastapi pydantic


【解决方案1】:

为了使用灵活的模型,我建议使用可选字段,如https://pydantic-docs.helpmanual.io/usage/models/#required-optional-fields中所述

【讨论】:

    猜你喜欢
    • 2022-06-14
    • 2020-09-12
    • 1970-01-01
    • 2021-02-01
    • 2021-05-27
    • 2022-10-07
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多