python - flask_marshmallow 阻止加载新实体,但允许加载现有实体
问题描述
Marshmallow 模式有一个dump_only
选项可以防止在load
事件期间反序列化该属性中的内容。
例如:
class UserSerializationSchema(ma.ModelSchema):
class Meta:
model = User
messages = fields.Nested(MessageSerializationSchema, dump_only=True)
如果它们已经存在,我们希望让 marshmallow 在这些字段中加载 orm 对象,但我们不希望允许通过反序列化创建新对象。Flask-marshmallow 确实加载现有对象而不创建新对象,例如,以下 dict when load
is run 将创建一个具有指定的新用户email
并将其与现有消息与uid
1 相关联:
{
'email': 'email@email.com',
'messages': {
'uid': 1
}
}
dump_only
不幸的是True
,在现场时,上述功能不起作用。是否可以告诉棉花糖允许与现有对象关联,但不允许通过反序列化创建新对象?
解决方案
推荐阅读
- python - 没有属性“reset_default_graph”
- css - 带有自定义滚动条的 DetailsList 组件
- azure - Docker 映像版本更改不会触发 terraform 容器更新
- javascript - 从缩短的链接中检索原始 URL
- button - Arduino按钮状态不低
- python - 如何/在何处在 Google docs API 中添加插入文本功能
- azure - 如何为带有防火墙后存储帐户的 sql server 启用 arm 模板漏洞评估
- jquery - jquery 无法识别 fullcalendar
- windows - Git LFS 不尊重 credential.helper 的配置文件级别
- javascript - CSS Transforms 属性不适用于动态注入的 html 元素