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

2024-06-26 17:44:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个todo应用程序,使用flask、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:无法导入名称'user'”

在这种情况下,我如何正确地引用?你知道吗


Tags: frompyimportapiidfieldsdatetimemodels
1条回答
网友
1楼 · 发布于 2024-06-26 17:44:49

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

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

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

那么,您就不需要实际导入这些模型了。只需注释掉/删除有问题的导入行,就可以了。你知道吗

相关问题 更多 >