2
對於下面的函數SQLAlchemy的:數據庫刪除錯誤
def deleteMenuItem(restaurant_id,menu_id):
if request.method == 'POST':
item = session.query(MenuItem).filter_by(id = menu_id)
session.delete(item)
session.commit()
return redirect(url_for('showMenu',restaurant_id =restaurant_id))
else:
return render_template('deletemenu.html',restaurant_id=restaurant_id,menu_id=menu_id)
當我嘗試刪除一個項目。我收到以下錯誤
sqlalchemy.orm.exc.UnmappedInstanceError UnmappedInstanceError: Class 'sqlalchemy.orm.query.Query' is not mapped
,如果我做了如下修改代碼
item = session.query(MenuItem).filter_by(id = menu_id).one()
我不知道爲什麼。一()解決該問題的錯誤可以是固定的。由於查詢本身總是會找到一個結果。那麼爲什麼.one()需要?
'.one()'返回找到的對象。 '... filter_by(...)'返回一個Query對象。 – Holloway
@霍洛威這是一個答案。 – Maroun