SQLAlchemy修改postgres表的jsonb字段失效

news/2024/7/9 21:41:01 标签: postgresql

今天遇到一灵异事件,ORM更新操作,一字段始终不生效,最后发现问题原因是postgres的jsonb导致的

表结构:

CREATE TABLE XX(value jsonb default '{}',...)

ORM:

from flask_sqlalchemy import SQLAlchemy
from sqlalchemy.dialects.postgresql import JSONB

db = SQLAlchemy()

class XX(db.Model):
	 __tablename__ = 'xx'
	 
	 value = db.Column(JSONB, default={}, doc='xxx')
	 ...

常规的更新写法,对他不生效,需要如下操作才能更新成功:

from sqlalchemy.orm.attributes import flag_modified

obj = XX.query.first()
obj.value = new_value_dict
flag_modified(obj, "value")  # !!!! 不加就更新不成功
db.session.add(xx)
db.session.commit()

http://www.niftyadmin.cn/n/5454909.html

相关文章

React系列之React版本时间线和主要更新

参考: https://github.com/facebook/react/releases 一些博客文章 React 起源于 Facebook 的内部项目,在 2013 年开源正式推出。 2016.4 React15: 之前都是 v0.xx,到这时候直接变成 v15,可见对这个库的重视和发展意图。 初始渲染…

ES5和ES6的深拷贝问题

深拷贝我们知道是引用值的一个问题,因为在拷贝的时候,拷贝的是在内存中同一个引用。所以当其中的一个应用值发生改变的时候,其他的同一个引用值也会发生变化。那么针对于这种情况,我们需要进行深度拷贝,这样就可以做到…

python-pytorch 常用api打卡0.1.300

python-pytorch 常用api打卡0.1.100 torch.nntorch.nn.Flattentorch.nn.Lineartorch.nn.ReLU torch.nn torch.nn.Flatten 维度计数是从0开始m nn.Flatten()默认从1维开始合并合并的维度值,就是这些维度的乘积对于数据维度的理解 如下数据input 4.1 对于数据-1.19…

深度学习中的Attention机制

深度学习中的Attention机制 一、Encoder-Decoder框架二、Attention机制(1) Soft Attention模型(2) Attention机制的本质思想(3) Self Attention模型(4) Attention机制的应用 一、Encoder-Decoder框架 Encoder-Decoder框架是一种深度学习领域的研究模式,应用场景异常…

最优算法100例之09-数组中单独出现两次的数字

专栏主页:计算机专业基础知识总结(适用于期末复习考研刷题求职面试)系列文章https://blog.csdn.net/seeker1994/category_12585732.html 题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 题解报告 最优解…

LanguageMPC:将大模型作为自动驾驶的决策者(一)

欢迎大家关注我的B站: 偷吃薯片的Zheng同学的个人空间-偷吃薯片的Zheng同学个人主页-哔哩哔哩视频 (bilibili.com) 目录 1.引入LLM的背景 2.文章架构 3.国内外研究现状

信号处理--情绪分类数据集DEAP预处理(python版)

关于 DEAP数据集是一个常用的情绪分类公共数据,在日常研究中经常被使用到。如何合理地预处理DEAP数据集,对于后端任务的成功与否,非常重要。本文主要介绍DEAP数据集的预处理流程。 工具 图片来源:DEAP: A Dataset for Emotion A…

【C语言】Infiniband驱动init_dev_assign函数

一、注释 一个内核模块的初始化函数,用于分配和初始化某些资源。以下是对代码块的逐行中文注释: // 定义一个初始化设备分配的函数 static void init_dev_assign(void) {int i 1;spin_lock_init(&dev_num_str_lock); // 初始化自旋锁if (mlx4_fil…