2012-12-25 61 views
3

我试图描述https://docs.djangoproject.com/en/dev/topics/db/managers/#modifying-initial-manager-querysetsDjango的扩展对象经理提出了“NoneType”对象有没有属性“_meta”

我做这样的事情,以创建一个自定义对象经理:

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

其中我认为不应该做任何事情。但只是设置此提高'NoneType' object has no attribute '_meta'。这怎么可能?我认为我非常密切地关注这个例子。

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

我有一种感觉,这将是我比较笨的问题之一,但我不出来...

回答

3

应该是模型定义中。因为它正在处理模型元类的__new__方法。

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

啊我知道这是一个愚蠢的问题。感谢你的回答! – Mark

+0

@Fatih如果我们无法修改Alpha类(例如,它是第三方库),该怎么办?在这种情况下是否有任何解决方法? –

+0

@KhaNguyễn也许猴子补丁? 'Alpha.objects = MyManager()' –

相关问题