【发布时间】:2019-02-14 07:26:58
【问题描述】:
我在这个项目中使用 sqlalchemy。
除删除功能外,CRUD 的所有功能都运行良好。
只是想知道会发生什么?
# Edit the specific item
@app.route('/catalog/<int:categories_id>/<int:items_id>/edit',
methods=['GET', 'POST'])
@login_required
def editItem(categories_id, items_id):
editedItem = session.query(CategoryItem).filter_by(id=items_id).one()
...
if request.method == 'POST':
...
session.add(editedItem)
session.commit()
flash("item edited successfully!")
return redirect(url_for('showItem', categories_id=categories_id,
items_id=items_id))
else:
return render_template('edititem.html', categories_id=categories_id,
items_id=items_id, item=editedItem)
# Delete the specific item
@app.route('/catalog/<int:categories_id>/<int:items_id>/delete',
methods=['GET', 'POST'])
@login_required
def deleteItem(categories_id, items_id):
itemToDelete = session.query(CategoryItem).filter_by(id=items_id).one()
...
if request.method == 'POST':
session.delete(itemToDelete)
session.commit()
flash("item deleted successfully!")
return redirect(url_for('showCategories', categories_id=categories_id))
else:
return render_template('deleteitem.html', categories_id=categories_id,
items_id=items_id, item=itemToDelete)
正如您在代码中看到的那样。
editedItem 和 deleteItem 都在使用 session.query(CategoryItem).filter_by(id=items_id).one()
但是当我删除该项目时。
不是删除单个项目,而是删除整个类别。
请看下面的模板
<form action="{{url_for('deleteItem' ,categories_id=categories_id, items_id=items_id, item=itemToDelete)}}" method="POST"> 
<input type="submit" value ="Delete">
<a href = "{{url_for('showItem',categories_id=categories_id, items_id=items_id)}}"><button type="button">Cancel</button></a>
我不确定是什么导致了这个问题。
【问题讨论】:
-
给我们一个最小的工作示例,而不是一个广告 GitHub 链接。
标签: python sql sqlite flask sqlalchemy