我的多对多模型看起来像这样,带有一个关联表:
class Puppy(Base):
__tablename__ = "puppy"
id = Column(Integer, primary_key=True, nullable=False)
name = Column(String(80))
class Adopter(Base):
__tablename__ = "adopter"
id = Column(Integer, primary_key=True, nullable=False)
name = Column(String)
puppies = relationship('Puppy', secondary='puppy_adopters', backref="puppy")
puppy_adopters = Table('puppy_adopters', Base.metadata,
Column('puppy_id', Integer, ForeignKey('puppy.id')),
Column('adopter_id', Integer, ForeignKey('adopter.id')))
如果我创建了一个名为Bill的Adopter,我可以使用Python轻松添加和检索他的小狗:
bill.puppies.append(fido)
bill.puppies.append(rex)
for puppy in bill.puppies:
print puppy.name # Fido, Rex
当我执行此操作时,puppy_adopters
关联表会填充Bill的ID和Fido的ID。但我如何看待Bill与Fido有关,使用Python?我使用fido = session.query(Puppy).filter_by(name="Fido")
为Fido获取了一个Python对象,但是没有包含Bill的fido.adopters
列表。我怎样才能看到所有采用Fido的人?
我在小狗桌上尝试了这一行:
adopter_id = Column(Integer, ForeignKey('adopter.id'))
但是当我添加一个采用者时它没有填充,并且无论如何也无法容纳多个采用者。
答案 0 :(得分:1)
SQLAlchemy文档在RadioSelect部分提供了您需要的内容。您要找的是checkbutton_state
。
String str = "12 + 43 * (12 / 2)";
int answer;
answer = str.magic();
//str.magic is the same as
answer = 12 + 43 * (12 / 2);