diff options
Diffstat (limited to 'database.py')
| -rw-r--r-- | database.py | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/database.py b/database.py index 746078e..2d3d070 100644 --- a/database.py +++ b/database.py @@ -58,7 +58,11 @@ class Upload(Base): readonly = db.Column(db.Boolean, nullable=True, default=bool) version = db.Column(db.Unicode(10), nullable=False, default=str) - author = relationship("User") + author = relationship("User", lazy="subquery") + + files = relationship("File", back_populates="upload", lazy="subquery") + comments = relationship("Comment", back_populates="upload", lazy="subquery") + votes = relationship("Vote", back_populates="upload", lazy="subquery") def json(self): return { @@ -84,7 +88,7 @@ class File(Base): upload_id = db.Column(Types.ObjectId, db.ForeignKey("uploads.id")) download_url = db.Column(db.Text) - upload = relationship("Upload") + upload = relationship("Upload", back_populates="files", lazy="subquery") def json(self): return { @@ -111,8 +115,9 @@ class Comment(Base): updated_at = db.Column(db.DateTime, nullable=False, default=datetime.now, onupdate=datetime.now) body = db.Column(db.UnicodeText, nullable=False) - author = relationship("User") - upload = relationship("Upload") + author = relationship("User", lazy="subquery") + upload = relationship("Upload", back_populates="comments", lazy="subquery") + votes = relationship("CommentVote", back_populates="comment", lazy="subquery") def json(self): return { @@ -131,8 +136,8 @@ class Vote(Base): upload_id = db.Column(Types.ObjectId, db.ForeignKey("uploads.id")) impact = db.Column(db.Integer, nullable=False) - author = relationship("User") - upload = relationship("Upload") + author = relationship("User", lazy="subquery") + upload = relationship("Upload", back_populates="votes", lazy="subquery") def json(self): return { @@ -149,8 +154,8 @@ class CommentVote(Base): comment_id = db.Column(Types.ObjectId, db.ForeignKey("comments.id")) impact = db.Column(db.Integer, nullable=False) - author = relationship("User") - comment = relationship("Comment") + author = relationship("User", lazy="subquery") + comment = relationship("Comment", back_populates="votes", lazy="subquery") def json(self): return { |
