我正在尝试使用 Flask-SQLAlchemy 建立多对多关系,以便我可以为 Videos 表中的每个条目创建一个“相关视频”列表。
class Videos(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(100), unique=False)
related_videos = db.relationship("Videos", \
secondary = "related_videos", \
primaryjoin="id==related_videos.c.video_id", \
secondaryjoin = "id==related_videos.c.related_id", \
backref ="related_to")
def __init__(self, title, ytid):
self.title = title
related_videos = db.Table("related_videos", \
db.Column("video_id", db.Integer, db.ForeignKey("Videos.id")), \
db.Column("related_id", db.Integer, db.ForeignKey("Videos.id")))
当我尝试添加新条目时,例如example = Videos("foobar")
出现错误:
sqlalchemy.exc.ArgumentError:无法在关系 Videos.related_videos 上确定 primaryjoin 条件“related_videos.video_id = :video_id_1”的关系方向。
我不确定为什么它不起作用 - 据我所知,我正在做与 SQLAlchemy 文档几乎相同的事情(尽管我可能错了!)