首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pymodm: ImportError (两个相互引用的模型)

Pymodm: ImportError (两个相互引用的模型)
EN

Stack Overflow用户
提问于 2019-02-27 11:37:53
回答 1查看 311关注 0票数 0

我正在编写一个todo应用程序,使用烧瓶、mongoDB和Pymodm作为ODM。我有两个模型,名为User和UserGroups。这两个人互相引用如下:

user.py

代码语言:javascript
复制
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')

userGroup.py

代码语言:javascript
复制
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:无法导入名称'user'“

在这种情况下,我怎样才能恰当地引用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-27 12:03:54

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

我看得出来你其实就是这么做的。例:

代码语言:javascript
复制
    groups = [fields.ReferenceField('group')]

那么,您不应该需要实际导入这些模型。只需注释掉/删除违规的导入行,它就会正常工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54904609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档