相关疑难解决方法(0)

SQLAlchemy delete不会级联

我的User模型与模型有关系Address.我已经指定关系应该级联删除操作.但是,当我查询并删除用户时,我收到一个错误,即仍然引用了地址行.如何删除用户和地址?

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    addresses = db.relationship('Address', cascade='all,delete', backref='user')

class Address(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey(User.id))
Run Code Online (Sandbox Code Playgroud)
db.session.query(User).filter(User.my_id==1).delete()
Run Code Online (Sandbox Code Playgroud)
IntegrityError: (IntegrityError) update or delete on table "user" violates foreign key constraint "addresses_user_id_fkey" on table "address"
DETAIL:  Key (my_id)=(1) is still referenced from table "address".
 'DELETE FROM "user" WHERE "user".id = %(id_1)s' {'id_1': 1}
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy flask flask-sqlalchemy

25
推荐指数
1
解决办法
1万
查看次数

SQL Alchemy - 如何从模型实例中删除?

假设我得到这样的模型实例:

instance = session.query(MyModel).filter_by(id=1).first()
Run Code Online (Sandbox Code Playgroud)

我该如何删除该行?有特殊的方法可以打电话吗?

python orm sqlalchemy

13
推荐指数
2
解决办法
7820
查看次数

使用Flask-SQLAlchemy删除行

我正在尝试使用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)

提前致谢!

python sqlalchemy flask

11
推荐指数
1
解决办法
1万
查看次数

标签 统计

python ×3

sqlalchemy ×3

flask ×2

flask-sqlalchemy ×1

orm ×1