我遇到了依赖规则的问题。对于我的生活,我无法弄清楚如何删除一行而不删除它的关系。
表格:
User
-id
-name
Article
-id
-title
UserArticle
-id
-user_id
-article_id
根据我的级联规则,运行此规则会删除与其关联的用户和文章,或者只是使用AssertionError错误输出。
ua = UserArticle.query.first()
db.session.delete(ua)
db.session.commit()
这是一种关系。
class UserArticle(db.Model):
user = relationship("User",
primaryjoin="UserArticle.user_id==User.id",
foreign_keys="User.id")
是的我已阅读了casecade规则,不,我不理解它们。 http://docs.sqlalchemy.org/en/latest/orm/session.html#cascades
我怎样才能删除该记录而不删除其他内容?
答案 0 :(得分:1)
级联规则意味着删除孤立的所有记录也应删除。
当您删除UserArticle时,用户(在程序眼中)没有理由再存在。这看起来像是您的数据库模型的问题。
尝试使用...
定义模型class UserArticle(db.Model):
id = db.Column(db.Integer, primary_key=True, auto_increment=True)
user_id = db.Column(db.Integer, db.ForeignKey('users.id'))
article_id = db.Column(db.Integer, db.ForeignKey('articles.id'))
creator = db.relationship("User", backref="UserArticle", primaryjoin=(user == User.id))
我在此代码中假设您的用户和文章已映射到"用户"和"文章"分别表。