查看關於Many to Many關係的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
然後,您可以通過調用訪問實例爲george
的屬於User
Thing
個列表george.inventory
。
希望這會有所幫助。
編輯:重讀你的問題,看到你想用backref
- 添加代碼來做到這一點。
編輯2:遺漏了一個非常重要的部分。