繁体   English   中英

Flask-SQLAlchemy:如何使用用户 ID 从多对多辅助表中删除行

[英]Flask-SQLAlchemy: How to delete row from many-to-many secondary table with the user id

我有这两个类和一个(多对多)辅助表链接它们:

association_table = db.Table('association_table',
    db.Column('project_id',db.Integer, db.ForeignKey('project.id'), primary_key=True),
    db.Column('usr_id',db.Integer, db.ForeignKey('usr.id'), primary_key=True)
)

class Usr(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    full_name = db.Column(db.String(150), unique=True, nullable=False)
    email = db.Column(db.String(150), unique=True, nullable=False)
    password = db.Column(db.String(150), nullable=False)
    projects = db.relationship('Project', secondary=association_table, lazy='subquery', backref=db.backref('usrs', lazy=True))

class Project(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(150), unique=True, nullable=False)
    description = db.Column(db.String(1000))
    creation_date = db.Column(db.DateTime(timezone=True), server_default=func.now())
    status = db.Column(db.Boolean, nullable=False)
    tickets = db.relationship('Ticket')
    owner = db.Column(db.Integer, db.ForeignKey('usr.id'))

我想从 Association_table 中删除一个具有其 ID 的用户(用户不再分配给项目实例),而不删除所有其他用户。 如何使用 Flask-SQLAlchemy 做到这一点?

示例:如何在 flask-sqlalchemy 中转换以下命令?

DELETE FROM association_table WHERE usr_id = 1;

要按用户 ID 删除用户,您必须执行以下操作:

user = User.query.get(id)
db.session.delete(user)
db.session.commit()

有关更多信息,请查看此链接: How to delete a record by id in Flask-SQLAlchemy

PD:用你的表名替换User

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM