【发布时间】:2019-05-10 22:01:39
【问题描述】:
我正在创建一个使用 Flask 和 MongoEngine 连接到 MongoDB 的应用程序。 我的文件夹结构如下所示:
app/
__init__.py
mod_users/
__init__.py
constants.py
forms.py
models.py
views.py
mod_games/
__init__.py
constants.py
forms.py
models.py
views.py
假设我的用户和游戏模型如下所示:
mod_users/models.py
class User(db.Document):
email = db.EmailField()
username = db.StringField()
password = db.StringField()
mod_games/models.py
from app.mod_users.models import User
class Game(db.Document):
title = db.StringField()
creator = db.ReferenceField(User, reverse_delete_rule=db.CASCADE)
likes_count = db.IntField()
现在,我的问题是我希望用户拥有他喜欢的游戏的列表。但是我不能使用引用字段,因为我必须导入 Game,这会创建循环导入。
这行不通:
from app.mod_games.models import Game
class User(db.Document):
email = db.EmailField()
username = db.StringField()
password = db.StringField()
liked_games = db.ListField(
db.ReferenceField(Game, reverse_delete_rule=db.PULL)
)
我想过在每个游戏中存储一个喜欢它的用户列表,然后在 Game 中添加一个静态方法来检索 给定用户的喜欢游戏列表,但这似乎不是解决此问题的干净有效的方法。
【问题讨论】:
标签: python mongodb flask mongoengine