我有一个带有json字段的模型。
class User(db.Model):
__tablename__ = 'users'
loginId = db.Column(db.String(128), nullable=False, primary_key=True)
_password = db.Column(db.String(128), nullable=True)
views = db.Column(JSON, nullable=True)
我试图通过递增属性的值来更新视图字段。假设views
中的当前值是{' Kids' :1}并且需要更新到{' Kids' :2},这是代码:
@mod_event.route('/view', methods=['POST'])
def view():
try:
params = request.json
key = params['key']
loginId = params['loginId']
user = User.query.filter_by(loginId=loginId).first()
if user.__dict__['views'].get(key,0) > 0:
user.views[key] = user.views.get(key, 0) + 1
else:
user.views = cast(cast(user.views, JSONB).concat(func.jsonb_build_object(key, 1)), JSON)
db.session.commit()
response = {"viewed" : viewed}
return str(response), status.HTTP_202_ACCEPTED
if
条件中的表达式会抛出此消息:
信息:sqlalchemy.engine.base.Engine:回滚
并且数据库未更新。
这里出了什么问题?谢谢你的帮助。