日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文介紹了SQLAlChemy:直接從一對多關系中刪除對象,而不使用會話。刪除()的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我有以下SQLAlChemy安裝程序:

Base = declarative_base()

class Post(Base):
    __tablename__ = 'post'
    id = Column(Integer, primary_key=True)
    title = Column(String(30))
    comments = relationship('Comment', cascade='all')

class Comment(Base):
    __tablename__ = 'comment'
    id = Column(Integer, primary_key=True)
    post_id = Column(Integer, ForeignKey(Post.id, ondelete='CASCADE'), nullable=False)
    text = Column(Text)

有了它,我就可以創建與評論具有一對多關系的POST對象。我想在不引用會話的情況下處理帖子評論的創建和刪除。在帖子中添加評論效果很好:

post = Post(title='some post')
comment = Comment(text='some comment')
post.comments.append(comment)

我的會話處理程序只知道POST,所以它將執行session.add(post),并自動將評論放入會話中,并在下一個session.commit()時與數據庫同步。然而,刪除評論就不是這樣了。我希望只需執行以下操作即可刪除評論:

post.comments.remove(comment)

但是,這會在下一個session.commit()上產生以下錯誤:

sqlalchemy.exc.OperationalError: (OperationalError) (1048, "Column 'post_id' cannot be null") 'UPDATE comment SET post_id=%s WHERE comment.id = %s' (None, 1L)

如何告訴SQLAlChemy不要使用post_id的NULL值更新注釋(由于列上的NOT NULL約束,這是不允許的),而是刪除該注釋?我知道我可以這樣做session.delete(comment),但由于我不需要將注釋顯式添加到會話中,因此我看不出為什么必須從會話中顯式刪除它。

我找到了幾種用于級聯刪除相關對象的解決方案,但由于我從未對會話發出任何顯式刪除(帖子仍在那里),我認為這不適用。

編輯:我調整了示例以包括從帖子中刪除的級聯?,F在它可以執行session.delete(post),并且所有評論都被刪除。但我只想自動刪除我從關系中刪除的評論,而不是刪除包含所有評論的整個帖子。

tl;dr:當我從一對多關系的關系列表中刪除條目時,如何告訴SQLAlChemy發出DELETE語句而不是UPDATE語句?

推薦答案

有關詳細信息,請閱讀文檔的Configuring delete/delete-orphan Cascade部分,但基本上您還需要delete-orphan以及relationshipcascade選項:

class Post(Base):
    # ...
    comments = relationship('Comment', cascade="all, delete-orphan")

這篇關于SQLAlChemy:直接從一對多關系中刪除對象,而不使用會話。刪除()的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,

分享到:
標簽:errorSQLAlchemy:Deleteobjectdirectlyfromone-to-manyrelationshipwithoutu
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定