【发布时间】:2014-01-18 03:13:58
【问题描述】:
我需要创建一个名为friends的表,它应该如下所示:
朋友:
- user_id
- friend_id
我试图通过 SQLALchemy 的教程来做到这一点,但我还没有找到如何为同一个表建立多对多关系。
这是我尝试过的:
# friends table
# many to many - user - user
_friends = db.Table('friends',
db.Column('user_id', db.Integer, db.ForeignKey('users.id')),
db.Column('friend_id', db.Integer, db.ForeignKey('users.id'))
)
class User(db.Model, UserMixin):
# table name in database
__tablename__ = 'users'
# primary key for table in db
id = db.Column(db.Integer, primary_key=True)
# email is unique!
email = db.Column(db.String(255), unique=True)
# password, max = 255
password = db.Column(db.String(255))
# category relation
categories = relationship("Category")
# cards relation
cards = relationship("BusinessCard")
# friends
friends = db.relationship(
'User',
backref="users",
secondary=_friends
)
上面写着:
AmbiguousForeignKeysError:无法确定之间的连接条件 关系 User.friends 上的父/子表 - 有多个 通过辅助表“朋友”链接表的外键路径。 指定“foreign_keys”参数,提供这些列的列表 应该算作包含来自 每个父表和子表的辅助表。
有谁知道如何正确地做到这一点?
【问题讨论】:
标签: python mysql flask many-to-many flask-sqlalchemy