2016-02-22 77 views
0

在我的模型我有一個ManyToManyField通過不同的型號:如何獲取Django Admin中ManyToManyField的當前值?

class A(models.Model): 
    ... 

class B(models.Model): 
    field = models.ManyToManyField(A) 

假設我有field一些值poblated,我試圖讓項目的列表,擊中Save按鈕之前用戶未選擇。對於這一點,我已經超負荷了save()方法內B

def save(self, *args, **kwargs): 
    super(B, self).save(*args, **kwargs) 
    print self.field.all() 

然而,擊中Save按鈕時,的self.field.all()我得到的值時,我裝的形式,我擁有的。

例如,如果我在列表中(ab)有兩個選擇項目,我不選擇b,撞上Save按鈕,self.field.all()save()時間仍然ab。如果我再次編輯該項目,我看到b未被選中,我選擇它並在save()時間self.field.all()僅爲a

我的假設是未選定的項目在save()方法之後被處理,儘管我還沒有在Django文檔中找到引用。

有沒有辦法在save()時間獲得更新列表?如果沒有,是否有一個方法可以重載以處理Model定義中的列表更新?

注意:替代品也歡迎)

回答

相關問題