SQLAlchemy:如何对表本身执行多对多操作(声明式方式)

SQLAlchemy:如何对表本身执行多对多操作(声明式方式),sqlalchemy,Sqlalchemy,我试图定义用户的多对多关系。我遵循了这些文件,我得到的最好结果是: import sqlalchemy as sa from sqlalchemy import orm from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() class Friends(Base): __tablename__ = 'friends' user1_id = sa.Column(sa.F

我试图定义用户的多对多关系。我遵循了这些文件,我得到的最好结果是:

import sqlalchemy as sa
from sqlalchemy import orm
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()


class Friends(Base):
    __tablename__ = 'friends'
    user1_id = sa.Column(sa.ForeignKey('users.id'), primary_key=True)
    user2_id = sa.Column(sa.ForeignKey('users.id'), primary_key=True)


class User(Base):
    __tablename__ = 'users'
    id = sa.Column(sa.Integer, primary_key=True)
    name = sa.Column(sa.String(50))
    # many to many
    friends = orm.relationship('User', secondary=Friends, backref=Friends)

u = User(name='someuser')
但那会让我

“AttributeError:“Friends”对象没有属性“foreign\u keys”


怎么了?

这是您的错误:您将ref设置回了Friends类。使用字符串。

这是您的错误:您将backref设置为Friends类。使用字符串。

同时将次要属性更改为
好友。\uuuu表\uuuuu
。同时将次要属性更改为
好友。\uuuu表\uuuu