由于某种原因,下面的代码产生了一个持久性错误:
'<Data at 0x1041db8d0>' is not persisted
对象是否需要在被删除之前进行初始化,这里有什么问题?
if request.method == 'POST' and form3.validate():
data_entered = Data(notes=form3.dbDelete.data)
try:
db.session.delete(data_entered)
db.session.commit()
db.session.close()
return render_template('deleted.html', notes=form3.dbDelete.data)
非常感谢。
答案 0 :(得分:0)
data_entered = Data(notes=form3.dbDelete.data)
这是创建Data
的新实例(或行)。然后,您正在运行session.delete
过程以将其从数据库中删除,但它从未插入(例如,通过session.commit()
)。
我猜这是你要做的事情:
try:
data_entered = db.session.query(Data).filter(Data.notes == form3.dbDelete.data).one()
except sqlalchemy.orm.exc.NoResultFound:
pass
else:
try:
db.session.delete(data_entered)
db.session.commit()
db.session.close()
return render_template('deleted.html', notes=form3.dbDelete.data)