Мне нужно создать таблицу с именем friends, она должна выглядеть так:
друзья:
- Логин пользователя
- 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», предоставив список тех столбцов, которые следует учитывать как содержащие ссылку внешнего ключа из вторичной таблицы на каждую из родительских и дочерних таблиц.
кто-нибудь знает, как это сделать правильно?