我正在编写一个todo应用程序,使用烧瓶、mongoDB和Pymodm作为ODM。我有两个模型,名为User和UserGroups。这两个人互相引用如下:
user.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')userGroup.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:无法导入名称'user'“
在这种情况下,我怎样才能恰当地引用?
发布于 2019-02-27 12:03:54
循环引用是一个多到多关系的常见问题。包实现的通常解决方案是提供一种方法来引用(尚未定义)其他模型,使用具有名称的字符串,而不是对象本身。
我看得出来你其实就是这么做的。例:
groups = [fields.ReferenceField('group')]那么,您不应该需要实际导入这些模型。只需注释掉/删除违规的导入行,它就会正常工作。
https://stackoverflow.com/questions/54904609
复制相似问题