python - 是否可以在创建 Pydantic BaseModel 属性后对其进行修改?

标签 python python-3.x fastapi pydantic

我开始学习 FastAPI 和 Pydantic 并且有疑问。我有 BaseModel 的以下子类

class Product(BaseModel):
  image: str
  name: str
保存这个模型后,我想要image存储值 /static/ + image以便创建漂亮的超链接 REST 端点。这可以使用 __post_init_post_parse__ pydantic 数据类的钩子(Hook),但由于 FastAPI 目前不支持它,我想知道有什么办法可以解决这个问题。

最佳答案

您可以使用自定义 validator :

>>> from pydantic import BaseModel, validator
>>> class Product(BaseModel):
    image: str
    name: str
    @validator('image')
    def static_mage(cls, image):
        return '/static/{}'.format(image)


>>> p = Product(image='pic.png', name='product_1')
>>> p
Product(image='/static/pic.png', name='product_1')

关于python - 是否可以在创建 Pydantic BaseModel 属性后对其进行修改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63210138/

相关文章:

python - 内存映射 ndarray 上的 numpy.std 因 MemoryError 失败

python - 导入使用原始文件,但不在 IDLE 中

python-3.x - 使用 Python 和 AWS 解析医学测试并提取表和键值?

python - 如何使用 FastAPI 更改默认的 Pydantic 错误消息?

python - 如何将组装字段添加到 Pydantic 模型

javascript - 无法解析余数 : '[0]' from 'rates[0]' - porting flask app to Django 2

python - 如何在python中获取文件中的字节偏移量

python - 使用python打开draw.io文件

python - 皮林特 : "Problem importing module ....: cannot import name ' Type'"

python - FastApi 获取请求显示验证错误