我应该在哪里覆盖ManyToMany相关字段的方法add()。
好像它不是我模特的经理'对象'。因为当我们为ManyToMany字段添加新关系时,我们不会编写Model.objects.add()。
所以我需要它覆盖实例的add()方法。我该怎么办?
修改
所以我知道有ManyRelatedManager。还有一件事我怎么能覆盖呢?
抱歉......没有覆盖,但默认情况下会在我的模型中分配。
答案 0 :(得分: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
manage是默认值。不要改变这一点。
dahl_objects
是一名自定义经理。你可以拥有任意数量的这些。