查看 SQLAlchemy 关于多对多关系的文档——它应该完全符合您的要求。
因此,如果您有 和 的模型User
,Thing
您可以在关系中设置辅助参数:
from sqlalchemy import Table, Integer, Column, ForeignKey
from sqlalchemy.orm import relationship, backref
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
association_table = Table('association', Base.metadata,
Column('user_id', Integer, ForeignKey('user.id')),
Column('thing_id', Integer, ForeignKey('thing.id'))
)
class User(Base):
__tablename__ = 'user'
# Whatever you need in this model
inventory = relationship('Thing', secondary = association_table, backref = 'users')
class Thing(Base):
__tablename__ = 'thing'
# Whatever you need in this model
然后,您可以通过调用访问Thing
属于User
实例化 as的 s 列表。george
george.inventory
希望这可以帮助。
编辑:重新阅读您的问题并看到您想使用backref
- 添加代码来做到这一点。
编辑2:遗漏了一个非常重要的部分。