情况:
所以,我在SQLAlchemy中使用关联表有一个基本的多对多关系.
例如,一个人可以参加很多聚会,一个聚会可以有很多人作为嘉宾:
class Person(Base):
__tablename__ = 'person'
id = Column(Integer, primary_key=True)
name = db.Column(db.String(50))
class SexyParty(Base):
__tablename__ = 'sexy_party'
id = Column(Integer, primary_key=True)
guests = relationship('Person', secondary='guest_association',
lazy='dynamic', backref='parties')
guest_association = Table(
'guest_association',
Column('user_id', Integer(), ForeignKey('person.id')),
Column('sexyparty.id', Integer(), ForeignKey('sexyparty.id'))
)
Run Code Online (Sandbox Code Playgroud)
通常,如果我想在聚会上添加一个客人列表,我会做这样的事情:
my_guests = [prince, olivia, brittany, me]
my_party.guests = guests
db.session.commit()
Run Code Online (Sandbox Code Playgroud)
......王子,奥利维亚<Person>和布列塔尼都是实例,my_party就是一个<SexyParty>例子.
我的问题:
我想使用人员ID而不是实例将访客添加到聚会中.例如:
guest_ids = [1, 2, 3, 5]
my_party.guests = guest_ids # <-- This fails, because guest_ids
# are not …Run Code Online (Sandbox Code Playgroud)