我们有一个带有JSON字段的模型,其中插入了用户标志。插入确实如预期的那样工作,但是当删除某些标志时,它们将保留在字段中,并且更改不会持久化到数据库。
我们的模型中有以下方法:
def del_flag(self, key):
if self.user_flags is None or not key in self.user_flags:
return False
else:
del self.user_flags[key]
db.session.commit()
return True
数据库是postgres,我们使用SQLalchemy JSON字段方言作为字段类型。有什么建议吗?
如果使用Postgres<;9.4,则不能直接更新JSON字段。您需要flag\u modified函数将更改报告给SQLAlchemy:
我的问题是在创建新行时引用从SQLAlchemy返回的行对象。e、 g.此功能不起作用:
但是创建一个新的dict确实有效
注意
dict(row.details)
我使用的是JSON字段,我引用了下面的文档。
https://docs.sqlalchemy.org/en/13/core/type_basics.html?highlight=json#sqlalchemy.types.JSON
它展示了如何使JSON dict字段可变。 (默认值是不可变的)
像这样。。
然后我可以将json字段更新为ORM。
相关问题 更多 >
编程相关推荐