Tom*_*oli 11 python sqlalchemy flask
我正在尝试使用flask和SQLAlchemy的扩展来创建一个删除数据库中记录的函数.问题是,它不是只删除一行,而是删除所有行.有人能告诉我我的代码有什么问题吗?
@app.route('/admin/delete/<int:page_id>', methods=['GET','POST'])
@requires_auth
def delete_page(page_id):
page = Page.query.get(page_id)
if not page:
abort(404)
if page.children:
flash('You can not delete a page with child pages. Delete them, or assign them a different parent.',
'error')
return redirect(url_for('admin_page'))
if request.method == 'POST':
Page.query.get(page_id).query.delete()
db.session.commit()
flash('Page was deleted successfully', 'success')
return redirect(url_for('admin_page'))
return render_template('admin_delete.html', page_title=page.title, page_id=page_id)
Run Code Online (Sandbox Code Playgroud)
提前致谢!
Rei*_*cke 25
我怀疑这条线不是你想的.
Page.query.get(page_id).query.delete()
Run Code Online (Sandbox Code Playgroud)
您正在获得单个实例(之前已经执行过),并且通过使用query实际上对所有对象发出新查询而不进行过滤,从而删除所有对象.
可能你想要做的是:
db.session.delete(page)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11388 次 |
| 最近记录: |