對於有這個問題的人,與very latest SQLAlchemy這一行爲已得到修復。
原來的問題:
我有越來越協會代理正確更新的問題。
但隨着該行改變UserKeyword:
keyword = relationship("Keyword", backref=backref("user_keywords", cascade="all, delete-orphan"))
並將其加入到關鍵字:
users = association_proxy('user_keywords', 'user')
所以關鍵字實例有名單用戶。如預期
以下工作:
>>> rory = User("rory")
>>> session.add(rory)
>>> chicken = Keyword('chicken')
>>> session.add(chicken)
>>> rory.keywords.append(chicken)
>>> chicken.users
[<__main__.User object at 0x1f1c0d0>]
>>> chicken.user_keywords
[<__main__.UserKeyword object at 0x1f1c450>]
但清除做奇怪的事情。從關聯代理列表中刪除,如下所示:
>>> rory.keywords.remove(chicken)
由於SA試圖將其中一個外鍵列設置爲null,因此會導致完整性錯誤。
這樣做:
>>> rory.user_keywords.remove(rory.user_keywords[0])
結果在此:
>>> chicken.users
[None]
我錯過了一些東西很明顯,不是嗎?
謝謝堆zzzeek。 –