Python `NotRegistered`使用多重继承时出现异常

Python `NotRegistered`使用多重继承时出现异常,python,pymongo,mongoengine,Python,Pymongo,Mongoengine,这真令人沮丧 下面是我的文档定义,为了使子类文档继承自基类,我遵循了以下建议: 型号/thread.py class Thread(object): meta = { 'allow_inheritance': True } models/forum.py from models.thread import Thread from mongoengine import Document class ForumThread(Document, Thread):

这真令人沮丧

下面是我的文档定义,为了使子类文档继承自基类,我遵循了以下建议:

型号/thread.py

class Thread(object):
    meta = {
        'allow_inheritance': True
    }
models/forum.py

from models.thread import Thread
from mongoengine import Document

class ForumThread(Document, Thread):
    meta = {
        'collection': 'forum_threads'
    }
models/group.py

from models.thread import Thread
from mongoengine import Document

class GroupThread(Document, Thread):
    meta = {
        'collection': 'group_threads'
    }
当我尝试这种事情时,我得到了
未注册的

>>> from models.forum import ForumThread
>>> print ForumThread.objects().first()
>>> NotRegistered: `Thread` has not been registered in the document registry.
            Importing the document class automatically registers it, has it
            been imported?

任何帮助/建议都将不胜感激。

我不确定线程是否需要
meta
,或者尝试使用抽象基类[1]

class Thread(Document):
    meta = {
        'abstract': True
    }

class ForumThread(Thread):
    meta = {
        'collection': 'forum_threads'
    }

class GroupThread(Thread):
    meta = {
        'collection': 'group_threads'
    }

[1]

是否导入了
线程
?我已更新了我的问题,以更清楚地说明问题。在尝试查询时,这给了我一个关键错误:“id\u字段”。我只需要一个地方来定义线程字段,以及一种在多个集合中表示线程的方法。是否需要在所有抽象类上设置
id\u字段
meta属性?在将其添加到线程时。uuu meta_uuudict,我不再能够访问mongoengine文档
\u id
字段作为代码中的
id
。我还尝试将线程。u meta['id\u field']设置为
id
\u id
无效。我们所有的文档都有一个
\u id
字段。感谢罗斯的帮助。现有文档上的
\u cls
字段就是问题所在。