覆盖方法为ManyToMany相关字段添加

时间:2010-08-11 22:31:30

标签: python django

我应该在哪里覆盖ManyToMany相关字段的方法add()。

好像它不是我模特的经理'对象'。因为当我们为ManyToMany字段添加新关系时,我们不会编写Model.objects.add()。

所以我需要它覆盖实例的add()方法。我该怎么办?

修改

所以我知道有ManyRelatedManager。还有一件事我怎么能覆盖呢?

抱歉......没有覆盖,但默认情况下会在我的模型中分配。

1 个答案:

答案 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是一名自定义经理。你可以拥有任意数量的这些。