Django扩展对象管理器引发'NoneType'对象没有属性'_meta'

时间:2012-12-25 16:31:39

标签: django model django-custom-manager

我正在尝试按照https://docs.djangoproject.com/en/dev/topics/db/managers/#modifying-initial-manager-querysets

所述创建自定义对象管理器

我正在做这样的事情:

# the model, say Alpha
class MyManager(Manager):
    pass
Alpha.objects = MyManager()

我认为不应该做任何事情。但只是设置它会引发'NoneType' object has no attribute '_meta'。这怎么可能?我想我是在密切关注这个例子。

我在覆盖与Alpha.objects之后的类型相同之前检查了svGroup.objects.__class__.__bases__[0]()(所以它确实是子类的实例)。

我有一种感觉,这将是我更愚蠢的问题之一,但我无法理解......

1 个答案:

答案 0 :(得分:3)

它应该在模型定义中。因为它使用模型的元类的__new__方法进行处理。

class Alpha(models.Model):
    ...
    objects = MyManager()