2011-11-18 65 views
-1

我正嘗試從EntityCollection的集合中刪除某個Entity,該集合不起作用,導致一個異常:list.remove(x): x not in listElixir EntityCollection.remove()不起作用

代碼摘錄如下:

user.platformSubscriptions.remove(platform)

平臺變量其實在platformSubscriptions集合。

+0

'platform'不能是'platformSubscriptions'收藏。請發佈堆棧跟蹤和其他代碼,以便我們爲您提供幫助。 – wberry

+0

@wberry謝謝,確實你是對的,但更具體地說,它們不是相同的**實例**,即使對象來自同一記錄。因此,默認比較器在列表中找不到匹配項。 – ronalddddd

回答

0

它沒有工作的原因可能是因爲平臺對象沒有適當的比較函數。因此,解決辦法是遍歷platformSubscriptions通過比較id領域找到platform匹配:

for subedPlat in user.platformSubscriptions: 
    if subedPlat.id == platform.user.platformSubscriptions.remove(subedPlat)