0

我正在使用烧瓶和 mongoDB 和 Pymodm 作为 ODM 编写一个待办事项应用程序。我有两个名为 User 和 UserGroups 的模型。这两个相互引用,如下所示:

用户.py

from api.models.userGroup import group
class User(MongoModel):
   _id    = fields.IntegerField(primary_key=True)
   email  = fields.CharField()
   password  = fields.CharField()
   createdAt = fields.DateTimeField(default=datetime.datetime.now())
   groups = [fields.ReferenceField('group')]
   personalTodoLists = fields.EmbeddedDocumentListField('list')

用户组.py

from api.models.user import user
class UserGroup(MongoModel, EmbeddedMongoModel):
   _id    = fields.IntegerField(primary_key=True)
   name  = fields.CharField()
   createdAt = fields.DateTimeField(default=datetime.datetime.now())
   ownerId = fields.ReferenceField('user')
   contributors = [fields.ReferenceField('user')]
   todoLits = fields.EmbeddedDocumentListField('list')

我收到错误消息:“ImportError:无法导入名称‘用户’”

在这种情况下,我怎样才能正确引用?

4

1 回答 1

0

循环引用是多对多关系的常见问题。包实现的通常解决方案是为您提供一种使用带有名称的字符串而不是对象本身来引用(尚未定义)其他模型的方法。

我可以看到这就是你所做的,实际上。例如:

    groups = [fields.ReferenceField('group')]

那么,您应该不需要实际导入这些模型。只需注释掉/删除有问题的导入行,它应该可以工作。

于 2019-02-27T12:03:54.093 回答