带烧瓶的mongoengine'mongoengine.errors.NotRegistered'问题

时间:2018-07-27 17:39:31

标签: python mongodb flask mongoengine

我想在烧瓶中使用mongoengine定义两个文档,用户包含以下主题,主题包含发布用户。

我在User中定义user.py文档,在Topic中定义topic.py文档。仅在topic.py中导入User clakk,在user.py中不导入Topic类,以避免导入循环。

user.py:
class User(Document):
    username = StringField(unique=True, required=True)
    following_topics = ListField(ReferenceField('Topic', reverse_delete_rule=PULL, unique=True))


topic.py:
from user import User
class Topic(Document, ModelMixin):
    title = StringField(default='')
    user = ReferenceField(User, required=True)

但是当我启动烧瓶时,出现错误,我该如何解决?

mongoengine.errors.NotRegistered: `Topic` has not been registered in the document registry. Importing the document class automatically registers it, has it been imported?

1 个答案:

答案 0 :(得分:0)

重要问题。

user.py: 
from topic import Topic 
class User(Document):
    username = StringField(unique=True, required=True)
    following_topics = ListField(ReferenceField('Topic', reverse_delete_rule=PULL, unique=True))

topic.py: 
class Topic(Document, ModelMixin):
    title = StringField(default='')
    user = ReferenceField('User', required=True)