我正在尝试将数据导入现有数据库项目。我要为每个数据库项目更新两个字段:字符串类型字段,其名称为imagefolder
,而拾取类型(列表)字段,其名称为images
。这两个字段的输入值都是存储文件路径的字符串。
我的步骤是查询数据库项,检查其是否存在,然后更新其字段。
blend = Blend.query.filter_by(old_ID=row[4]).first()
if blend:
blend.imagefolder = "/".join((row[16].split("/")[4:])[:-1])
blend.images.append(ntpath.basename(row[16]))
db.session.commit()
当我运行脚本时,什么也没有发生(数据库没有更新),我注意到导入脚本的运行速度实在是太快了,太快了。
答案 0 :(得分:1)
您错过了将更改的对象添加到当前会话的操作。
并尝试以下代码段。
blend = db.session.query(Blend).filter_by(old_ID=row[4]).first()
if blend:
blend.imagefolder = "/".join((row[16].split("/")[4:])[:-1])
blend.images.append(ntpath.basename(row[16]))
db.session.add(blend)
db.session.commit()