使用 FASTAPI 对 PUT 更新请求中的 NULL 值分配进行故障排除

问题描述 投票:0回答:1

我的问题围绕数据库中的“产品”模型,其中某些值(例如描述)是可选的,可以包含字符串或空值。我已经为产品创建了一个更新函数,当我尝试使用 PATCH 或 PUT 方法实现部分更新时,问题就出现了。

例如,如果我有一个带有描述的产品,并且我希望通过删除描述来更新它,我的方法是发送带有“描述:null”的请求。然而,这种方法的问题在于,部分更新请求将其解释为不想将 null 分配给描述,而是作为根本不修改描述字段的信号。

有谁知道我该如何解决这个问题?

https sqlalchemy fastapi patch put
1个回答
0
投票

您可以使用

exclude_unset
model_dump
参数来实现该行为。

在端点中调用

product_data.model_dump(exclude_unset=True)
,它将返回
dict
,其中仅包含在输入数据中显式设置的属性。 迭代这些属性并仅更新它们。

因此,如果您需要更新产品并保持

description
不变,则只需在发送到端点的数据中省略此字段即可。

如果您需要删除描述 - 将此字段设置为空。

© www.soinside.com 2019 - 2024. All rights reserved.