在model没有缺少字段的前提下
做以下查询
def foo(path):
imgs = sess.query(
Img.url,
Img.map_url
)
for img in imgs:
img.path = path
sess.commit()
会出现sqlalchemy AttributeError: can't set attribute的情况,同理改成也会出现同样的错误,
def foo(path):
imgs = sess.query(
Img.url,
Img.map_url
)
for img in imgs:
try:
img.update({"img_path": path})
sess.commit()
except:
sess.rollback()
原因:返回的内容是ret而不是query_set,不是query_set对象就无法进行属性赋值的操作,所以正确的方法应该是:
def foo(path):
imgs = sess.query(
Img
)
for img in imgs:
try:
img.update({"img_path": path})
sess.commit()
except:
sess.rollback()