Append()和remove()函数无法正常工作,将表留空

时间:2019-11-14 22:49:22

标签: python flask flask-sqlalchemy

我正在尝试在我的userpost表之间建立多对多关系,但最终我的user.liked.all()post.liked_by.all()仍在打印[]

这是关联表:

likes = db.Table('likes',
    db.Column('user_id', db.Integer, db.ForeignKey('user.id')),
    db.Column('post_id', db.Integer, db.ForeignKey('post.id'))
)

还有user类代码:

    liked = db.relationship('Post',
        secondary=likes,
        primaryjoin=(likes.c.user_id == id),
        secondaryjoin=(likes.c.post_id == Post.id),
        backref=db.backref('liked_by', lazy='dynamic'),
        lazy='dynamic'
    )

    def is_liked(self, post):
        return self.liked.filter(likes.c.post_id == post.id).count() > 0

    def like(self, post):
        if not self.is_liked(post):
            self.liked.append(post)

    def unlike(self, post):
        if self.is_liked(post):
            self.liked.remove(post)

两个表都有一个id字段。 所以我无法得到这种行为的原因。

0 个答案:

没有答案