2010-08-11 49 views
0

我應該在哪裏覆蓋ManyToMany相關字段的add()方法。ManyToMany相關字段的覆蓋方法添加

似乎它不是我的模型的經理「對象」。因爲當我們爲ManyToMany字段添加新的關係時,我們不寫作Model.objects.add()。

那麼我需要它覆蓋方法add()的實例。我該怎麼做?

編輯:

所以我知道有ManyRelatedManager。還有一件事我怎麼能覆蓋它呢?

對不起...不覆蓋,但默認分配在我的模型。

+0

這不是很明智。你有什麼問題?請發佈已破解的代碼和您收到的錯誤。 – 2010-08-11 22:36:46

回答

0

http://docs.djangoproject.com/en/1.2/topics/db/managers/#custom-managers

您可以創建任意數量的管理的模式。

您可以繼承ManyRelatedManager並將其分配給模型。

這個例子可能是你在找什麼

# Then hook it into the Book model explicitly. 
class Book(models.Model): 
    title = models.CharField(max_length=100) 
    author = models.CharField(max_length=50) 

    objects = models.Manager() # The default manager. 
    dahl_objects = DahlBookManager() # The Dahl-specific manager. 

objects管理是默認的。不要改變這一點。

dahl_objects是一個定製的經理。你可以有任何數量的這些。

+0

據我所知,我可以覆蓋它。很簡單。如何分配它而不是默認ManyRelatedManager?原因是 - 我有一個大項目,我不想把任何地方的默認管理員都改爲我的服裝。我知道如果我做這個對象= MyManager()它將使用它而不是默認值。所以我應該怎麼做才能改變默認的ManyRelatedManager。 – Pol 2010-08-12 14:25:41

+0

@Pol:採取提示:不要更改默認值。 – 2010-08-12 14:27:12