我應該在哪裏覆蓋ManyToMany相關字段的add()方法。ManyToMany相關字段的覆蓋方法添加
似乎它不是我的模型的經理「對象」。因爲當我們爲ManyToMany字段添加新的關係時,我們不寫作Model.objects.add()。
那麼我需要它覆蓋方法add()的實例。我該怎麼做?
編輯:
所以我知道有ManyRelatedManager。還有一件事我怎麼能覆蓋它呢?
對不起...不覆蓋,但默認分配在我的模型。
我應該在哪裏覆蓋ManyToMany相關字段的add()方法。ManyToMany相關字段的覆蓋方法添加
似乎它不是我的模型的經理「對象」。因爲當我們爲ManyToMany字段添加新的關係時,我們不寫作Model.objects.add()。
那麼我需要它覆蓋方法add()的實例。我該怎麼做?
編輯:
所以我知道有ManyRelatedManager。還有一件事我怎麼能覆蓋它呢?
對不起...不覆蓋,但默認分配在我的模型。
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
是一個定製的經理。你可以有任何數量的這些。
據我所知,我可以覆蓋它。很簡單。如何分配它而不是默認ManyRelatedManager?原因是 - 我有一個大項目,我不想把任何地方的默認管理員都改爲我的服裝。我知道如果我做這個對象= MyManager()它將使用它而不是默認值。所以我應該怎麼做才能改變默認的ManyRelatedManager。 – Pol 2010-08-12 14:25:41
@Pol:採取提示:不要更改默認值。 – 2010-08-12 14:27:12
這不是很明智。你有什麼問題?請發佈已破解的代碼和您收到的錯誤。 – 2010-08-11 22:36:46